在我的Storyboard中,控制器1拥有导航控制器并连接到控制器2。奇怪的是,Segue可以正常工作,但整个方法
override func prepare(for: segue)
却没有被调用(我设置了断点)。我查看了很多Stack Overflow上的旧问题,但没有一个能够解决我的问题。谢谢!
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
self.navigationController?.performSegue(withIdentifier: segueId, sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == self.segueId {
let destionationNVC = segue.destination as! UINavigationController
guard let targetVC = destionationNVC.topViewController as? ViewController2 else { return }
targetVC.text = self.text
}
}
self
上调用performSegue
,而不是在封闭的导航控制器上调用。 - vadian