你能帮帮我吗?即使下面的代码看起来是正确的,而且我已经在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"
        }
}

09-12 22:17