質問

独自のカスタムナビゲーションバーを使用していますが、ボタンを追加したり、タイトルを変更したりする必要があるため、さまざまなビューでアクセスする必要があります。

新しいビューを表示するたびにナビゲーションバーへの参照を渡す必要がありますか、または任意のビューからアクセスできるようにシングルトンにするだけですか?

役に立ちましたか?

解決

グローバル変数にします。

他のヒント

どちらでもない。

カスタムツールバーが必要な理由として、ボタンの追加とタイトルの変更をリストしましたが、どちらもナビゲーションコントローラーを介して行うことができ、独自に作成する必要がないため、シングルトンやグローバル変数。

新しいView Controllerをプッシュするとき、[self setTitle:@" Nav Title"];を呼び出すだけで、ナビゲーションバーのタイトルを設定できます。そのView Controllerの-viewDidLoadで。ボタンを追加する必要がある場合は、次のようなコードを使用します(-viewDidLoadにもあります):

[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc]
        initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                             target:self 
                             action:@selector(setEditing)] autorelease]];

つまり、リストした理由だけでカスタムナビゲーションバーを作成している場合、設計に欠陥があります。カスタムナビゲーションバーを作成する理由はいくつかあると思いますが、これらはその中にはありません。

セクションnofollow noreferrer "> iPhone OS向けコントローラプログラミングガイドの表示

よろしく、

UINavigationControllerを使用していますか?その場合、次のようなサブコントローラーからナビゲーションバーにアクセスできます。

UINavigationBar *bar = self.navigationController.navigationBar;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top