iPhoneカスタムナビゲーションバーシングルトンかどうか?
-
06-07-2019 - |
質問
独自のカスタムナビゲーションバーを使用していますが、ボタンを追加したり、タイトルを変更したりする必要があるため、さまざまなビューでアクセスする必要があります。
新しいビューを表示するたびにナビゲーションバーへの参照を渡す必要がありますか、または任意のビューからアクセスできるようにシングルトンにするだけですか?
解決
グローバル変数にします。
他のヒント
どちらでもない。
カスタムツールバーが必要な理由として、ボタンの追加とタイトルの変更をリストしましたが、どちらもナビゲーションコントローラーを介して行うことができ、独自に作成する必要がないため、シングルトンやグローバル変数。
新しいView Controllerをプッシュするとき、[self setTitle:@" Nav Title"];を呼び出すだけで、ナビゲーションバーのタイトルを設定できます。そのView Controllerの-viewDidLoadで。ボタンを追加する必要がある場合は、次のようなコードを使用します(-viewDidLoadにもあります):
[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemEdit
target:self
action:@selector(setEditing)] autorelease]];
つまり、リストした理由だけでカスタムナビゲーションバーを作成している場合、設計に欠陥があります。カスタムナビゲーションバーを作成する理由はいくつかあると思いますが、これらはその中にはありません。
よろしく、
UINavigationControllerを使用していますか?その場合、次のようなサブコントローラーからナビゲーションバーにアクセスできます。
UINavigationBar *bar = self.navigationController.navigationBar;
所属していません StackOverflow