UINavigationItemの永続的なrightBarButtonItemプロパティ
-
03-07-2019 - |
質問
これはばかげた質問かもしれませんが、 UINavigationController
によって管理される複数のビューにわたって正しい UIBarButtonItem
を保持することは可能ですか?多くの場合、同じ右 UIBarButtonItem
を共有するビューの進行がありますが、新しいビューを UINavigationController
にプッシュすると、毎回ボタンを再定義する必要があります変更されていません。ほとんどの場合、あるビューから次のビューへの顕著な遷移アニメーションは、まったく同じボタンが一時的にフェードアウトしてから元に戻るので、実際に視覚的な変化がないため不要です。 UINavigationBar
のサブビューとして UIButton
を追加することを検討し、「右バーボタン」を実現する必要があります。この方法で効果がありますか?
解決
これはアプリで行いました。ユーザーがナビゲートするときに1つのUIViewControllerから別のUIViewControllerにスワップする単一のUIBarButtonItemを作成しました。その秘trickは、navigationController:willShowViewController:animated:メソッドであるUINavigationControllerDelegateを使用することでした。発信UIViewControllerのrightBarButtonItemをnilに設定し、着信コントローラのrightBarButtonItemをボタンに設定します。管理するのは大変ですが、うまくいきます。
他のヒント
UIBarButtonItemsは、nib / xibファイルのスタンドアロンインスタンスとして作成できます。 Interface builderでボタンを構築することを妨げる特別なことが何も行われていない場合、ボタンを再利用する必要がある各View ControllerのUINavigationItemのrightBarButtonItemプロパティに接続する必要があります。客観的なcは必要ありません。