将变量传递给下一个View Controller

时间:2017-08-20 08:57:26

标签: swift3 viewcontroller

我想将一个变量从一个视图控制器传递给另一个视图控制器。 第一个视图控制器看起来像这样,并且正确触发了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'。

我浏览了各种教程,但我似乎没有找到正确的答案来实现它。

周围有线索的人吗?

提前致谢...

1 个答案:

答案 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!
    }
}