2017-10-19 99 views
0

当您将搜索控制器设置为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 
    } 

回答

0

发现的问题。需要在willPresentSearchController中设置正确的原始值