所以我对这个有点难过。我的应用程序曾经工作过,在进入XCode 9后,这似乎停止了工作。
我有UITableViewController
附加UISearchController
来进行一些非常简单的搜索。
我已将UITableViewController
与resultSearchController
字段联系起来。这就是我在viewDidLoad
中配置它的方式:
self.resultSearchController = UISearchController(searchResultsController: nil)
self.resultSearchController.searchResultsUpdater = self
self.resultSearchController.dimsBackgroundDuringPresentation = false
self.resultSearchController.searchBar.placeholder = "Type to search"
self.resultSearchController.searchBar.sizeToFit()
self.tableView.tableHeaderView = self.resultSearchController.searchBar
self.tableView.reloadData()
我的主控制器实现了UISearchResultsUpdating
协议,所以我们在那里很好。
这是事物爆炸的部分。当有人点击搜索结果时,这就是处理下一步操作的逻辑:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let quoteDetailNavController = Storyboard.findViewController("Search", identifier: "QuoteDetailNav")
let quoteDetail = (quoteDetailNavController as! UINavigationController).viewControllers[0] as! QuoteDetailViewController
quoteDetail.quote = quoteSearchResults[indexPath.row]
quoteDetail.delegate = self
self.resultSearchController.present(quoteDetailNavController, animated: true) {}
}
所有内容似乎都运行正常,但当我致电self.resultSearchController.present(quoteDetailNavController, animated: true) {}
应用程序崩溃时,我得到的只是NSException
让它发生了。我设置了断点并试图抓住NSException
,但都无济于事。我通过要求UISearchController
提供另一个控制器但显然做错了,但我无法说出它是什么。提前谢谢!