1

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

新しいビューを表示するたびに、navigationBar への参照を渡す必要がありますか?それとも、任意のビューからアクセスできるようにシングルトンにする必要がありますか?

4

3 に答える 3

3

ない。

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

新しいビュー コントローラーをプッシュすると、[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 」セクションを確認することを検討してください。

よろしくお願いします、

于 2009-10-27T15:49:37.733 に答える
2

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

UINavigationBar *bar = self.navigationController.navigationBar;
于 2009-10-27T15:28:12.503 に答える
0

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

于 2009-10-27T14:28:56.600 に答える