2009-09-03 8 views
0

私はUITabControllerを持っています。タブの1つはUINavigationControllerです。ナビゲーションスタックのプッシュとポップはうまく動作します。すべてのUIViewControllerには、UIViewが接続された独自のNIBがあります。しかし、残念ながら、私はルートのナビゲーションコントローラのために表示されるタイトルを取得するだけです!UINavigationBarとUINavigationItemですが、タイトルはありません

通常、NIBにUIViewControllerを作成するときは、設定できるタイトル属性があります。しかし、この場合、ビューコントローラは、NIBファイルの所有者です。 IBではタイトルを設定する方法がありません。

何がすることができますは、タイトルをinitWithNibに設定して表示します。

if (self = [super initWithNibName: @"MyViewController" bundle:nil]) { 
    self.title = @"test"; 
} 

しかし、私はIBでタイトルを定義したいと思います。

私はここで少し失われています。助言がありますか?

答えて

0

をスクリーンショットが含まれています。残念な。

+0

私は、あなたのように、このことが可能であると信じています。私は本当にどのように考えていきたいですか?それ以来、1.5年後にそれを理解したことはありませんか? – Craig

1

これは実際にすべてのIBで可能です。

NIBファイルをUITabControllerでロードする必要があります。次に、表示モード(左上に3つのアイコンのセット)を中央のオプションに設定します。これにより、すべてのコンポーネントがネストされたツリーとして表示されます。

次に、該当するView Controllerを選択し、アトリビュートインスペクタを表示します。そこにあなたはタイトルを変更することができますが表示されます。あなたは私が何を意味するか見ることができるように

持っだから明らかに、このシナリオでのUIViewControllerのタイトルを設定する方法は自分ではありません...

alt text http://img7.imageshack.us/img7/1875/screenshot20090903at120.png

+0

実際。それが** root *コントローラのタイトルを設定する方法です。問題は、上に押し込まれる他のコントローラについてです。今まで私はIBがファイル所有者にtitle属性を公開していないので、コード内のタイトルを変更する方法しか知りません。 「完成した」NIB。それが私にとって面白いところです。 – tcurdt

+0

あなたの例のUITabControllerは* root *コントローラです。ナビゲーションコントローラーは基本的に、異なるビューパスと同じオブジェクトです。そのため、コード内で行う必要があるサブビューのタイトルを設定する必要があります。ただし、initメソッドで呼び出す必要はありません。ただself.title = @ "test"は、どのUIViewControllerデリゲートメソッドでも行います。 – h4xxr

+0

ナビゲーションコントローラはビ​​ューコントローラを管理します(サブビューではありません - 少なくとも直接はありません)。私は、ナビゲーションコントローラによって処理されるルートビューコントローラを参照していました。ビューコントローラがナビゲーションスタックにプッシュされると、ビューコントローラのタイトルが表示されます。 NIBはView Controllerインスタンスを作成するので、IBにタイトルを設定することが可能でなければなりません。今まで私はそれをする方法を見ていない。それが問題だ。 – tcurdt

関連する問題