这个问题只发生在iPhone上.我有一个tableView,当我点击它时,它将显示详细页面.当我快速点击单元格,然后在详细屏幕的导航栏上点击 "返回 "时,应用程序崩溃.这种情况很少发生(10次使用中的1次或更少)。
编码。
class Coordinator {
func rootViewController() -> UISplitViewController {
let master = createMasterViewController()
let detail = createDetailViewController()
self.splitViewController = createSplitViewController(master, detail)
return self.splitViewController
}
...
func didSelectDetail() {
let detail = createDetailViewController()
self.splitViewController.showDetailViewController(detail, sender: nil)
}
}
异常:
***由于未捕获的异常'NSInvalidArgumentException',原因:'正在推送同一个视图控制器实例()不止一次,这是不支持的,很可能是应用程序中的一个错误。
如果控制器从内存中释放,可能会发生这种情况。如果你把它创建为 var splitViewController: UIViewController!
- 改写 var splitViewController: UIViewController?
,并在每次调用中检查是否为nil,如
guard let controller = self.splitViewController else {
print("Controller does not exist")
return
}