将变量传递给下一个视图控制器
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!
}
}
我想将变量从一个视图控制器传递到另一个视图控制器。 第一个 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!
}
}