2016-04-10 13 views
0

を開始した後に非表示になります検索バーが非表示になります。迅速な検索バーとナビゲーションバーは、私は検索バーとテーブルビューを持っている私の迅速な2アプリで

enter image description here

これは私もこのメッセージを取得開始時のviewDidLoad

 self.resultSearchController = ({ 
      let controller = UISearchController(searchResultsController: nil) 
      controller.searchResultsUpdater = self 
      controller.dimsBackgroundDuringPresentation = false 
      controller.searchBar.sizeToFit() 
      controller.hidesNavigationBarDuringPresentation = true 
      self.MyTable.tableHeaderView = controller.searchBar 

      return controller 
     })() 

である私のコードです:ビューコントローラの間のビューをロードしようとすると

を 割り当て解除が許可されていないため、未定義の動作が発生する可能性があります。 ()

私の質問はどこですか? :/

+0

あなたは 'UISearchController'のグローバル(および強い)オブジェクトを作ってみましたがありますか? – Nishant

+0

グローバルで強力なオブジェクトを作ってみてどうしましたか?私は最初にこの行を持っています: 'var resultSearchController = UISearchController()' – Stack108

+0

誰も考えませんか? : '( – Stack108

答えて

0

thisチュートリアルこのコードを使用すると、問題を解決できます。あなたはそれが完全に働いたようにしたい場合は、以下を使用して、コードを変更する必要が

self.navigationController!.navigationBar.translucent = false 
searchController!.hidesNavigationBarDuringPresentation = false 

// This makes the view area include the nav bar even though it is opaque. 
// Adjust the view placement down. 
self.extendedLayoutIncludesOpaqueBars = true 
self.edgesForExtendedLayout = UIRectEdge.Top 
0

 self.resultSearchController = UISearchController(searchResultsController: nil) 
     self.resultSearchController.searchResultsUpdater = self 
     self.resultSearchController.searchBar.delegate = self 
     self.definesPresentationContext = true 
     self.resultSearchController.dimsBackgroundDuringPresentation = false 
     self.resultSearchController.hidesNavigationBarDuringPresentation = true 
     if #available(iOS 11.0, *) { 
      self.navigationItem.searchController = self.resultSearchController 
     } else { 
      self.tableView.tableHeaderView = self.resultSearchController.searchBar 
     } 
関連する問題