2017-10-19 104 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中設置正確的原始值