7

iPhone OS 3.0 では、メソッドを使用して UINavigationController のツールバー項目を設定できますsetToolbarItems:animated:。ただし、これには UIToolbarItems の配列を渡す必要があります。これらのツールバー項目をプログラムで作成することもできますが、できれば Interface Builder で作成したいと思います。

これを念頭に置いて、「MyGreatViewController.xib」に UIToolbar を作成し、必要なツールバー項目を設定しました。次に、"MyGreatViewController.m" で、ツールバーからアイテムを取得し、次のように渡しますsetToolbarItems:animated:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setToolbarItems: [toolbar items]];
}

... toolbarUIToolbar を参照する IBOutlet です。

これは良いアプローチですか?これを達成するためのより良い方法はありますか?プログラムでアイテムを作成する必要がありますか?

4

2 に答える 2

12

これがどこかに文書化されているかどうかはわかりませんが、Interface Builder では、ナビゲーション コントローラーのツールバーを有効にすると、バー項目をビュー コントローラーにドラッグでき、ナビゲーション コントローラーのツールバーに自動的に表示されることがわかりました。 .

たとえば、次のことができます (Snow Leopard で Xcode 3.2 を使用):

  1. File->New Project.... Navigation-based Applicationを選択し、プロジェクトを作成します。
  2. MainWindow.xibInterface Builder で開きます。
  3. Navigation Controller を選択し、属性インスペクタで [Shows Toolbar] ボックスをオンにします。これにより、Toolbar オブジェクトが表示されます。
  4. バー ボタン アイテムをライブラリからツールバーにドラッグします。ツールバーに表示されます。NIB の階層を確認すると、この新しい項目が の子であることがわかりますRootViewController

ナビゲーション アイテムの子として追加されたバー ボタン アイテムはナビゲーション バーに表示され、ビュー コントローラーの子として追加されたバー ボタン アイテムはツールバーに表示されるようです。

(私は偶然これに出くわしました。誰かがこの動作のドキュメントまたは追加情報を見つけることができれば、それについて聞きたいです。)

于 2009-09-20T19:43:31.483 に答える
4

これは完全に受け入れられる方法ですが、iPhone では xib ファイルの読み込みにかなりのコストがかかることに注意してください。

于 2009-08-22T09:20:37.980 に答える