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