0

UISearchControllerUISearchDisplayControllerではなく)を使用しています。検索が有効なときに別の表示をしたかったのです。私は現在のビューを使いたくない。UISearchControllerで異なるsearchResultsControllerを表示するには

self.searchController = UISearchController(searchResultsController: self.resultsController)と試しました。しかし、これは何も表示されません。

検索がアクティブになる前に

がこれでも

func presentSearchController(_ searchController: UISearchController) { 
    DispatchQueue.main.async { 
     searchController.searchResultsController?.view.isHidden = false 
    } 
} 

func didPresentSearchController(_ searchController: UISearchController) { 
    searchController.searchResultsController?.view.isHidden = false 
} 

私のデフォルトのテーブルのデータを試してみました、以下のようですが、私はこのテーブルは非表示にし、別のビューを表示し、その新しいビューに入力されたキーワードを渡したいです。どうすればこれを達成できますか?

enter image description here

答えて

1

のViewControllerには直接セグエがないように、我々は明示的に私たちが使用したかったのViewControllerを参照する必要があります。

私は以下のコードを使用しています。私はsearchBarがアクティブなときに新しいコントローラを読み込みます。

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    self.resultsController = storyboard.instantiateViewController(withIdentifier: "searchResults") as! SearchResultsTableViewController 
    self.searchController = UISearchController(searchResultsController: self.resultsController) 

より良い方法があれば教えてください。

関連する問題