質問

iPhone OS 3.0 では、次のコマンドを使用して UINavigationController のツールバー項目を設定できます。 setToolbarItems:animated: 方法。ただし、これには UIToolbarItem の配列を渡す必要があります。これらのツールバー項目はプログラムで作成することもできますが、可能であれば Interface Builder で作成したいと考えています。

これを念頭に置いて、「MyGreatViewController.xib」に UIToolbar を作成し、そこに必要なツールバー項目を追加しました。次に、「MyGreatViewController.m」で、ツールバーから項目を取得し、それらを渡します。 setToolbarItems:animated::

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

...どこ toolbar UIToolbar を参照する IBOutlet です。

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

役に立ちましたか?

解決

それはそれを行うための完全に受け入れられる方法ですが、ロードXIBファイルをiPhone上で非常に高価であり、よくあなたのviewDidLoadメソッドでプログラム的にツールバー項目を作成するために、より高速であってもよいことを心に留めない。

他のヒント

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

たとえば、(Snow Leopard で Xcode 3.2 を使用して)できることは次のとおりです。

  1. ファイル -> 新しいプロジェクト....選ぶ ナビゲーションベースのアプリケーション そしてプロジェクトを作成します。
  2. 開ける MainWindow.xib インターフェイスビルダーで。
  3. Navigation Controller を選択し、Attributes インスペクタで「Shows Toolbar」ボックスにチェックを入れます。これにより、ツールバー オブジェクトが表示されます。
  4. バー ボタン項目をライブラリからツールバーにドラッグします。ツールバーに表示されます。NIB の階層を確認すると、この新しい項目が NIB の子であることがわかります。 RootViewController.

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

(偶然ここを知りました。誰かがこの動作に関するドキュメントや追加情報を見つけたら、それについて聞きたいです)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top