2016-04-14 13 views
0

後、私は、ビューコントローラの検索コントローラの設定:ナビゲーションバーの検索ボタンをクリックしたときに、私は、ナビゲーションバーの中に検索バーを提示し、その後検索バー応答しないセグエ

searchController = UISearchController(searchResultsController: nil) 
searchController.searchResultsUpdater = self 
searchController.dimsBackgroundDuringPresentation = false 
searchController.searchBar.placeholder = getLocalizedString("searchByName") 
searchController.searchBar.setValue(getLocalizedString("cancel"), forKey:"_cancelButtonText") 
searchController.searchBar.delegate = self 
searchController.hidesNavigationBarDuringPresentation = false 
searchController.searchBar.showsCancelButton = true 
searchController.searchBar.sizeToFit() 

をtitleビュー:

self.navigationItem.setHidesBackButton(true, animated: true) 
self.navigationItem.rightBarButtonItem = nil 
self.navigationItem.leftBarButtonItem = nil 

self.navigationItem.titleView = searchController.searchBar 

searchController.searchBar.becomeFirstResponder() 

このビューコントローラをタブバーアイテムとして使用すると、検索バーが期待通りに機能します。

また、View Controllerも持っている別のView ControllerのSegueでView Controllerを再利用します。

セグが実行された後、検索ボタンをクリックすると、検索バーが表示されますが、クリックなどには反応しません。

更新

私はちょうど私が使用しているからだと考え出し:

self.definesPresentationContext = true 

任意のアイデアなぜ?私がタブの間を移動している場合、画面が黒く塗られていないと必要です。

ありがとうございました。

答えて

1

答えを探している人には、definesPresentationContextprepareForSegueメソッドでfalseに設定して修正できました。

また、ユーザーが戻るときに黒い画面が表示されないようにするには、viewWillAppearでもtrueに戻します。