你能帮帮我吗?即使下面的代码看起来是正确的,而且我已经在stack overflow.com上检查过类似的问题,数据(itemStr)仍然没有传递:
第一视图控制器(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”?
提前谢谢你的帮助。
古文
最佳答案
你遇到了问题,因为你没有真正表现出你认为你是的。你真的在展示它。
但你还是可以这样做:
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"
}
}