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

Swift3 将变量传递给下一个视图控制器,swift3,viewcontroller,Swift3,Viewcontroller,我想将一个变量从一个视图控制器传递到另一个视图控制器。 第一个视图控制器看起来是这样的,并且正确触发了segue,并显示了新的视图控制器 @IBAction func testButton(_ sender: Any) { let timerVC = TimerViewController() timerVC.secondsPassed = textfield_seconds.text! navigationController?.pushViewControlle

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

@IBAction func testButton(_ sender: Any) {

    let timerVC = TimerViewController()

    timerVC.secondsPassed = textfield_seconds.text!

    navigationController?.pushViewController(timerVC, animated: true)

}
在下一个视图控制器(TimerViewController)上,我在类头中声明了一个变量

var secondsPassed:String!
在viewDidLoad中,我只想将值打印到控制台,我收到的只是一个“nil”

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

周围有人有线索吗


提前感谢…

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

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

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

你有一个连接到按钮的segue吗?在这种情况下,我认为
iAction
实际上不会运行。您应该删除segue,因为您已经在调用
pushViewController
。是的,连接了一个segue。我把它拿走了,但现在什么也没发生。没有显示新的视图控制器,只有按钮指示它已被按下。我还是很困惑。这么简单的东西怎么会这么难?啊,那么你没有嵌入式UINavigationController,对吧?正在发布答案。不,我没有UINavigationController。标记我的故事板并通过菜单将它们嵌入到故事板中有意义吗?这能解决我的问题吗?你可以解决。不嵌入导航控制器并使用我的答案或2。嵌入导航控制器并移除segue。这两种方法都能解决你的问题。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let vc = segue.destination as? TimerViewController {
        vc.secondsPassed = textfield_seconds.text!
    }
}