用于UISearchController的自定义UITableViewController覆盖iOS 11中的搜索栏
问题描述:
当您将搜索控制器设置为navigationItem.searchController时,UISearchController的自定义UITableViewController覆盖iOS 11中的搜索栏。桌面视图控制器覆盖整个屏幕,因此您在输入时看不到搜索栏。发送nil给UISearchController时,这不是问题。基本上,我有这个地图应用程序的搜索栏,所以我设置UITableViewController到UISearchController来处理在搜索位置时显示搜索结果。以前,表格视图显示在搜索栏的底部,现在它覆盖整个屏幕。用于UISearchController的自定义UITableViewController覆盖iOS 11中的搜索栏
这里有一个代码片段:
searchController = UISearchController(searchResultsController: searchResultsController)
searchController.searchBar.sizeToFit()
searchController.hidesNavigationBarDuringPresentation = true
searchController.dimsBackgroundDuringPresentation = true
searchController.definesPresentationContext = false
searchController.searchResultsUpdater = self
searchController.delegate = self
if #available(iOS 11.0, *){
self.navigationItem.searchController = searchController
}
答
发现的问题。需要在willPresentSearchController中设置正确的原始值