从UISearchController呈现会导致NSException

时间:2017-12-29 03:18:46

标签: swift uisearchcontroller

所以我对这个有点难过。我的应用程序曾经工作过,在进入XCode 9后,这似乎停止了工作。

我有UITableViewController附加UISearchController来进行一些非常简单的搜索。

我已将UITableViewControllerresultSearchController字段联系起来。这就是我在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提供另一个控制器但显然做错了,但我无法说出它是什么。提前谢谢!

0 个答案:

没有答案