我在尝试从按钮执行segue到UINavigatinController时遇到错误:
致命错误:在解包可选值时意外发现nil
@IBAction func displayFootball(_ sender: Any) {
self.configToSend = self.configFootball
performSegue(withIdentifier: "navSegue", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "navSegue" {
let navVC = segue.destination as! UINavigationController
let mainVC = navVC.topViewController as! MainViewController //<--This is where the error occurs
mainVC.config = self.configToSend
}
}
第一个segue称为'navSegue',第二个是未命名的。两者都直接从一个视图控制器转到下一个(而不是从按钮本身)。
navVC不是零,顺便说一句。
任何人都知道为什么会这样吗?谢谢。
答案 0 :(得分:3)
要实现此目的,请尝试使用:
select . . .
from ps_order_detail od join
ps_orders o
using (id_order) join
ps_customer c
using (id_customer) join
ps_carrier ca
using (id_carrier)
编辑:
let navVC = segue.destination as? UINavigationController
(navVC.viewControllers[0] as? YourVCClass).property = dataToSend
数组上的nil问题可能是因为你没有从NavigationController到他的第一个ViewController的关系。