【发布时间】:2017-09-02 21:06:53
【问题描述】:
我已经阅读了几篇关于这个问题的帖子,但没有一篇能解决我的问题。
我正在编写一个应用程序,我必须单击一个按钮(“准备”)才能转到以下 ViewController。单击按钮时,它还会在两个视图控制器之间传递数据。
问题是,当我单击按钮时,以下 ViewController 会加载两次。因此,如果我想回去,我必须通过两个相同的 ViewController 回去。
我检查了 segue、类名和文件名,但没有解决它。
我还创建了一个新项目并从头重写了所有代码,但最终它仍然无法正常工作。
但是,当我添加 prepare(forSegue:) 函数和 performSegue 函数时,我注意到问题出现了。没有它,ViewController 只会加载一次。但是当然,如果没有它,我无法获取视图之间传递的数据...
这是我的两个视图的截图和两个函数的代码:
// Prepare the segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "prepareSegue" {
let timerViewController = segue.destination as! CountdownViewController
timerViewController.timeInterval1 = waitingTime
timerViewController.timeInterval2 = shootingTime
timerViewController.lastSeconds = lastSeconds
timerViewController.currentTimeInterval = waitingTime
}
}
// Prepare the timer when the button is pushed
@IBAction func prepareTimer(_ sender: Any) {
performSegue(withIdentifier: "prepareSegue", sender: self)
}
【问题讨论】:
-
您是否在 Interface Builder 中设置了 segue?
-
在我的情况下是
commentTF.becomeFirstResponder(),我只需要删除它。
标签: ios swift segue viewcontroller viewdidload