UISearchControllerのカスタムUITableViewControllerは、searchコントローラをnavigationItem.searchControllerに設定すると、iOS 11の検索バーをオーバーレイします。テーブルビューコントローラは画面全体をカバーしているため、入力中に検索バーが表示されません。 UISearchControllerにnilを送信しても、これは問題ではありません。基本的には、このマップアプリケーションの検索バーがあるので、場所を検索するときに検索結果の表示を処理するUITearchViewrollerにUITableViewControllerを設定しています。以前は、テーブルバーは検索バーの下部に表示され、今度は画面全体をカバーします。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
}