2017-02-18 9 views
1

または、必要なすべてのビューに対して手動で検索バーを手動で実装する簡単な方法はありますか? アプリのほぼすべてのビューに検索バーを追加する必要があります(また、すべてのビューのナビゲーションバーにボタンを追加する必要があります)。しかし、私はこの目標を達成するための最良のアプローチが何であるか分かりません。
すべてのビューにUISearchbarを追加する方法

  1. ナビゲーションバーまたはナビゲーションコントローラ全体をサブクラス化する必要がありますか?
  2. また、必要なすべてのビューで検索バーを手動で適切に実装する簡単な方法はありますか?

どのクラスを適切なクラスにサブクラス化する必要がある場合は、 私の考えはUINavigationControllerをサブクラス化し、UISearchBarを追加し、検索結果を取得した後に検索結果をUITableViewControllerとして開きます。

これは

import UIKit 

class MyNavigationControllerViewController: UINavigationController { 

    var searchController : UISearchController! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.navigationBar.backgroundColor = UIColor.red 
     self.createSearchBar() 
    } 

    func createSearchBar() { 
     let searchBar = UISearchBar() 
     searchBar.showsCancelButton = true 
     searchBar.placeholder = "Search" 
     // searchBar.delegate = self 
     self.navigationItem.titleView = searchBar 
    } 
} 

は、少なくとも、デバッガがMyNavigationControllerに入りませんが、どちらも検索バーが表示されても(私は実用的なソリューションの午前場合だけチェックするために検索バーのデリゲートを実装しないで)私の現在のアプローチです赤いナビゲーションバー。

+0

申し訳ありませんが、あなたの質問を編集中に文章をコピーした私のMacのクリップボードのバグが原因です。私は拒否される編集要求に頼っていたため、SOには_edit cancel_機能がありません。あなたはちょうど質問を正確に再構成できますか? – ystack

答えて

1

ナビゲーションバーとアイテムの設定を提供する拡張機能を使用することをお勧めします。次に、任意のView Controllerを拡張して、プロトコルのデフォルトの実装を使用することができます。

関連する問題