web-dev-qa-db-ja.com

ナビゲーションバーのUISearchController

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
    })()

コントローラ:

enter image description here

検索バーをクリックすると:

enter image description here

13
Peter Pik

テーブルヘッダーの代わりに、ナビゲーションバーにUISearchBarUISearchControllerを配置できます

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;
21

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
3
fatihyildizhan

それはナビゲーションバーと関係があります。

func willPresentSearchController(searchController: UISearchController) {
    self.navigationController?.navigationBar.translucent = true
}

func willDismissSearchController(searchController: UISearchController) {
    self.navigationController?.navigationBar.translucent = false
}

これを行うと、テーブルビューヘッダーに追加して、組み込みの検索コントローラーアニメーションを取得できるようになります。

0
kylesyoon