Swift 为什么 prepare func 不能正常工作

Swift Why prepare func does not work properly


我是 Swift 的新手。在我的 tableview controller 中我执行了 segue,我认为 prepare in landing view controller 会被调用。
// tableview controller
AF.request(url, headers: headers).responseDecodable(of: ProductEach.self) { response in
   self.activityIndicator.stopAnimating()
   if response.value!.error_message == "invalid product id" {
      print("invalid product id")
   } else {
      // 
      // do bunch of things with the data I got before performing a segue
      // 
      self.performSegue(withIdentifier: "GotoDetail", sender: self)
   }
}
// landing viewcontroller
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   guard let destinationVC = segue.destination as? TableViewController else { return }
   print("prepare called")
}

我在调试控制台中看不到 prepare 调用
谁能告诉我我做错了什么?

提前致谢。

你的prepare方法正好相反。它应该在“from”(not“to”)视图控制器中,它是 TableViewController,而不是 DetailViewController。而且,您应该将 segue.destinationDetailViewController 进行比较,而不是 TableViewController.

// inside TableViewController
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   guard let destinationVC = segue.destination as? DetailViewController else { return }
   print("prepare called")
}