在我的代码中,这就是我设置UISearchController
的方式:
searchResultController = storyboard!.instantiateViewControllerWithIdentifier(DBSearchResultControllerIdentifier) as! DBSearchResultController
searchController = UISearchController(searchResultsController: searchResultController)
searchController.searchResultsUpdater = self
searchController.delegate = self
searchResultController.tableView.tableHeaderView = searchController.searchBar
在某些操作上,我要做的是:
@IBAction func cityButtonTapped(sender: UIButton) {
searchController.active = true
}
但是然后我有一个错误:
最佳答案
Apple文档UISearchController
明确说明了以下内容:
active
属性设置为YES会默认显示搜索 Controller 。
searchResultsController
参数设置为nil
以显示在与您搜索的 View 相同的 View 中搜索结果。
因此,看起来您正在使用当前 View Controller 本身作为
searchResultsController
,因此,当您尝试将active
设置为YES时,它将尝试以模态形式显示当前 View 本身,从而导致错误。关于ios - 激活UISearchController时出错 "Application tried to present modal view controller on itself",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31487824/