按下时,我有一个搜索按钮,为搜索功能提供ViewController
。此视图控制器包含UITableView
和UISearchController
。
一切正常,但在我选择其中一个搜索结果后。我想直接关闭这个视图控制器,但是第一个选择取消取消然后再次选择将关闭视图控制器。如下所示,我只想选择一个解雇。谢谢!
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
searchViewController.searchBar.resignFirstResponder()
self.dismissViewControllerAnimated(false, completion: nil)
}
修改
let searchViewController = UISearchController(searchResultsController: nil)
func configureSearchController() {
tableView.tableHeaderView = searchViewController.searchBar
searchViewController.delegate = self
searchViewController.searchResultsUpdater = self
self.definesPresentationContext = true
searchViewController.dimsBackgroundDuringPresentation = false
}
答案 0 :(得分:4)
以下两个步骤应该是您正在寻找的技巧:
首先,您需要在选择如下一行时取消搜索:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
searchController.active = false
}
其次,你需要实现一个UISearchControllerDelegate的委托方法,以便在取消"取消"你的搜索结果:
extension SearchViewController: UISearchControllerDelegate {
func willDismissSearchController(searchController: UISearchController) {
print("Will dimiss search controller")
self.dismissViewControllerAnimated(true, completion: nil)
}
}