你能帮我吗?即使以下代码似乎正确,但数据(itemStr)也没有通过,并且我已经在stackoverflow.com上检查了类似的问题:
第一个视图控制器(BookTableViewController.swift):
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let SecondController = segue.destination as? BookViewController {
SecondController.itemStr = "43"
}
}
第二个视图控制器(BookViewController.swift):
var itemStr = String()
override func viewDidLoad() {
super.viewDidLoad()
itemNoLabel?.text = "BNo:" + itemStr + " GYE"
}
当我运行程序时,itemStr为零。我没有得到“ 43”?
在此先感谢您的帮助。 番石榴
答案 0 :(得分:0)
您遇到了麻烦,因为您并未真正提出自己认为的UIViewController
。您确实是在展示它的UINavigationViewController
。
但是您仍然可以执行以下操作:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let navigationViewController = segue.destination as? UINavigationController {
guard let secondViewController = navigationViewController.topViewController as? BookViewController else { return }
secondViewController.itemStr = "43"
}
}