Swift 未调用 Prepare(for: segue)

Swift Prepare(for: segue) not called

在我的故事板中,controller1 有 natigationController 和 segues 到 controller 2。奇怪的是 Segue 工作正常但是

override func prepare(for: segue)

没有调用整个方法(我设置了断点)。我在Whosebug上复习了很多老问题,但是没有人能解决我的问题。谢谢!

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.navigationController 上调用 performSegue,因此将调用 navigationController.prepareForSegue,而不是 VC 中的那个。您应该将 segue 重新连接到情节提要中的 您的 VC,为其提供标识符,然后调用:

self.performSegue(...)