TableViewControllerで新しいUISearchControllerを使用しようとしています。
ただし、古いsearchDisplayControllerの場合と同じように、searchBarを押したときに、navigationControllerで上に移動する方法について少し混乱していますか?
現時点では、tableHeaderにとどまります。
これが私のコードです:
self.teamSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchBar.searchBarStyle = UISearchBarStyle.Minimal
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.showsScopeBar = true
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
コントローラ:
検索バーをクリックすると:
テーブルヘッダーの代わりに、ナビゲーションバーにUISearchBar
のUISearchController
を配置できます
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;
// Include the search bar within the navigation bar.
self.navigationItem.titleView = self.searchController.searchBar;
self.definesPresentationContext = YES;
Swift
バージョン:
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.searchBar.searchBarStyle = UISearchBarStyle.Minimal
// Include the search bar within the navigation bar.
self.navigationItem.titleView = self.searchController.searchBar
self.definesPresentationContext = true
それはナビゲーションバーと関係があります。
func willPresentSearchController(searchController: UISearchController) {
self.navigationController?.navigationBar.translucent = true
}
func willDismissSearchController(searchController: UISearchController) {
self.navigationController?.navigationBar.translucent = false
}
これを行うと、テーブルビューヘッダーに追加して、組み込みの検索コントローラーアニメーションを取得できるようになります。