2017-01-03 14 views
1

私はUINavigationBarのサブクラスを持っていますが、このUINavigationBarサブクラスを使用するUINavigationControllerのサブクラスにしたいと思います。私はすでにそのナビゲーションバークラスとしての私のカスタムナビゲーションバーを設定し、ナビゲーションバーUINavigationControllerサブクラスでUINavigationBarサブクラスを設定する

let navController = UINavigationController(navigationBarClass: CustomNavigationBar.self, toolbarClass: nil)

しかし、私はUINavigationController(プログラム的に)カスタムを作成することができるようにしたいカスタムを使用するデフォルトUINavigationControllerを設定する方法を知っています。私はこのリンクでそれを行う方法を見てきましたが、それはちょっと日付がついているようです(2012)と 'ハッキーAF' - https://stackoverflow.com/a/9610801/2654425。私はUINavigationControllerのナビゲーションバークラスを設定することによって 'ストーリーボード'でそれを行う方法を知っていますが、私はこれを私のカスタムUINavigation Controllerでプログラムで実行したいと思います。

class CustomNavigationBar: UINavigationBar { 

    override init(frame: CGRect) { 
     super.init(frame: frame) 

    } 
    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 


    } 

    override func draw(_ rect: CGRect) { 
     self.backgroundColor = UIColor.red 
    } 


} 

class CustomNavigationController: UINavigationController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

イムわからないカスタムナビゲーションバーを設定するには:

は、ここで基本的なUINavigationBarUINavigationControllerサブクラスです。どんな助けでも大歓迎です。 :)

+0

viewDidLayoutSubViewsメソッドを追加しようとしています。 –

答えて

0

UINavigationControllerサブクラスをインスタンス化するときに設定する必要があります。具体的には、UINavigationController.init(navigationBarClass:AnyClass ?, toolbarClass:AnyClass?)。 AppleのマニュアルのUINavigationControllerを参照してください。

関連する問題