将变量传递给下一个视图控制器

Pass variable to next View Controller

我想将变量从一个视图控制器传递到另一个视图控制器。 第一个 View Controller 看起来像这样,正确触发了 segue 并显示了新的 View Controller。

@IBAction func testButton(_ sender: Any) {

    let timerVC = TimerViewController()

    timerVC.secondsPassed = textfield_seconds.text!

    navigationController?.pushViewController(timerVC, animated: true)

}

在下一个 View Controller (TimerViewController) 中我声明了一个变量 class header

var secondsPassed:String!

在 viewDidLoad 中,我只想将值打印到控制台,而我收到的只是 'nil'。

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

周围有人有线索吗?

提前致谢...

如果您已经在使用 segue,您可以删除显示控制器的这一行(反正您似乎没有 navigationController):

navigationController?.pushViewController(timerVC, animated: true)

现在使用 segues 将数据传递给另一个 VC 的正确方法是:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let vc = segue.destination as? TimerViewController {
        vc.secondsPassed = textfield_seconds.text!
    }
}