我有一个带有UISearchController的应用程序。UI中的这个元素完全是通过以下代码设置的:
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.searchBarStyle = UISearchBarStyle.Minimal
searchController.searchBar.frame = CGRectMake(searchController.searchBar.frame.origin.x, searchController.searchBar.frame.origin.y, searchController.searchBar.frame.size.width, 44.0)
然后我将其添加到我的tableView的tableHeaderView中
tableView.tableHeaderView = searchController.searchBar
所有似乎都很正常,但当它处于活动状态并且我在tableView中选择一个项目时,我的应用程序会过渡到另一个视图控制器,并且搜索控制器仍然存在于视图中。我不确定这是如何可能的,因为搜索控制器应该是另一个视图控制器中tableView的子视图。我该如何防止这种情况发生?
prepareForSegue
中只是将其设置为 'nil' 是否太过于 hacky 了? - Tim QuinnprepareForSegue
中调用tableView.tableHeaderView = nil
时,它根本没有任何影响。或者你是指将整个searchController
设置为nil?如果是这种情况,我不确定处理所有这些的最佳方法是什么。 - KilianprepareForSegue
中将searchController.active
设置为false
。 - Praveen Gowda I V