准备功能不会被 segue 调用
Prepare function doesn't call by segue
在我的 swift 应用程序中我有这个功能,我不会指定 class 因为它不重要。
class ViewController: UIViewController {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? LocalTVC,
let indexPath = tableView.indexPathForSelectedRow {
destination.selectedLocal = favouriteLocals[indexPath.row]
}
}
func presentLocalTVC() {
let storyBoard: UIStoryboard = UIStoryboard(name: "Home", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "localTVCID") as! LocalTVC
self.present(newViewController, animated: true, completion: nil)
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.presentLocalTVC()
}
但是当 tableViewControlller LocalTVC 出现时,变量 "selectedLocal" 为 nil。
我该如何解决这个问题?
如果您正在使用 segues,您应该使用独立于故事板委托的 performSegue(withIdentifier:sender:)
You are using present(_:animated:completion:)
。
在我的 swift 应用程序中我有这个功能,我不会指定 class 因为它不重要。
class ViewController: UIViewController {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? LocalTVC,
let indexPath = tableView.indexPathForSelectedRow {
destination.selectedLocal = favouriteLocals[indexPath.row]
}
}
func presentLocalTVC() {
let storyBoard: UIStoryboard = UIStoryboard(name: "Home", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "localTVCID") as! LocalTVC
self.present(newViewController, animated: true, completion: nil)
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.presentLocalTVC()
}
但是当 tableViewControlller LocalTVC 出现时,变量 "selectedLocal" 为 nil。 我该如何解决这个问题?
如果您正在使用 segues,您应该使用独立于故事板委托的 performSegue(withIdentifier:sender:)
You are using present(_:animated:completion:)
。