我想将一个变量从一个视图控制器传递给另一个视图控制器。 第一个视图控制器看起来像这样,并且正确触发了segue并显示了新的视图控制器。
@IBAction func testButton(_ sender: Any) {
let timerVC = TimerViewController()
timerVC.secondsPassed = textfield_seconds.text!
navigationController?.pushViewController(timerVC, animated: true)
}
在下一个View Controller(TimerViewController)上,我在类头
中声明了一个变量var secondsPassed:String!
并且在viewDidLoad中我只想将值打印到控制台,我收到的所有内容都是'nil'。
我浏览了各种教程,但我似乎没有找到正确的答案来实现它。
周围有线索的人吗?
提前致谢...
答案 0 :(得分:1)
如果您已经使用了segue,则可以删除显示控制器的这一行(无论如何您似乎没有navigationController
):
navigationController?.pushViewController(timerVC, animated: true)
现在使用segue将数据传递到另一个VC的正确方法是:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? TimerViewController {
vc.secondsPassed = textfield_seconds.text!
}
}