私は独自のカスタム ナビゲーション バーを使用していますが、ボタンを追加したり、タイトルを変更したりする必要があるため、さまざまなビューでアクセスする必要があります。
新しいビューを表示するたびに、navigationBar への参照を渡す必要がありますか?それとも、任意のビューからアクセスできるようにシングルトンにする必要がありますか?
私は独自のカスタム ナビゲーション バーを使用していますが、ボタンを追加したり、タイトルを変更したりする必要があるため、さまざまなビューでアクセスする必要があります。
新しいビューを表示するたびに、navigationBar への参照を渡す必要がありますか?それとも、任意のビューからアクセスできるようにシングルトンにする必要がありますか?
ない。
カスタム ツールバーが必要な理由として、ボタンの追加とタイトルの変更を挙げましたが、どちらもナビゲーション コントローラーを介して実行でき、独自のツールバーを作成する必要がないため、シングルトンやグローバル変数を作成する必要はありません。
新しいビュー コントローラーをプッシュすると、[self setTitle:@"Nav Title"]; を呼び出すだけで、ナビゲーション バーのタイトルを設定できます。そのView Controllerの-viewDidLoadで。ボタンを追加する必要がある場合は、次のようなコードを使用します (-viewDidLoad でも)。
[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemEdit
target:self
action:@selector(setEditing)] autorelease]];
言い換えれば、リストした理由だけでカスタム ナビゲーション バーを作成している場合、そのデザインには欠陥があります。カスタム ナビゲーション バーを作成する正当な理由がいくつかあると思いますが、これらはその中にはありません。
View Controller Programming Guide for iPhone OSの「 Configuring the Navigation Item Object 」セクションを確認することを検討してください。
よろしくお願いします、
UINavigationController を使用していますか? その場合、次のように任意のサブコントローラーからナビゲーション バーにアクセスできます。
UINavigationBar *bar = self.navigationController.navigationBar;
グローバル変数にします。