私は UINavigationBar のカスタム サブクラスを my UINavigationController
by using: で使用していますinitWithNavigationBarClass:toolbarClass:
。
言うまでもなく、このサブクラスでは、表示されたナビゲーション アイテムのタイトルが変更されたときに、ナビゲーション バー サブクラスに含まれる追加のインターフェイス要素を監視および更新する必要があります。これにKVOを使用し、ナビゲーション項目のtitle
プロパティを観察し、それが変更されたときに更新することを検討しましたが、もっと良い方法があるのではないかと思っていました. サブクラス化UINavigationController
により、この機能を制御または監視する余裕が得られるでしょうか? これについてあなたの考えを聞きたいのですが、これについてもっと良い方法があるかどうか?
詳しく説明すると、たとえば、いくつかのメソッドをオーバーライドしていますlayoutSubviews
。このメソッドでは、ナビゲーション項目がスタックにプッシュされたばかりで、まだタイトルがありません。これは、viewDidLoad
まだ起こっていないビューがロードされるまで実行されないビュー コントローラにタイトルが設定されているためです。そのため、ナビゲーション項目がプッシュされたとしてもnil
、表示された View Controller で変更されるまで、タイトルはそのままですviewDidLoad
。これは、ナビゲーション スタックにプッシュされた後にナビゲーション アイテムが変更されたときに通知を受けたいものです。