web-dev-qa-db-ja.com

Interface Builderで作成されたナビゲーションバーのタイトルを設定します

ビューがXIBから来るモーダルビューコントローラーがあります。ナビゲーションベースのアプリの残りの部分と同じルックアンドフィールを持たせたいのですが、ナビゲーションスタックにプッシュされるビューではなく、モーダルで表示されます。 UINavigationBarをドラッグしてアウトレットにしましたが、設定するtitleプロパティがありません。このモーダルビューを表示できる2つのフィールドがあり、どちらがモーダルビューを作成するかに応じて、タイトルの設定を変えたいと思います。

51
Steve

UINavigationBarは、UINavigationItemマネージャーがUINavigationControllersのスタックを管理するように、UIViewControllersのスタックを管理します。直接表示されるものを設定するには、pushNavigationItem:animated:またはsetItems:animated:バーに反映させるView ControllerのnavigationItemを使用します。

例えば:

self.navigationItem.title = @"A custom title";
[self.navigationBar pushNavigationItem:self.navigationItem animated:NO];

スタンドアロンのナビゲーションバーを参照するプロパティnavigationBarがある上記のコード。

自分で管理したくない場合は、mplappertの提案どおりに実行し、View Controllerを(スタンドアロンUINavigationBarなしで)UINavigationControllerにネストし、代わりにモードでNavigation Controllerを提示できます。 View Controllerの.

90
codelark

また、IBで既にUINavigationBarを定義している場合、この簡単な方法が見つかりました。 self.navigationBarがIBOutletであると仮定します。

self.navigationBar.topItem.title = title;
64
typeoneerror

(XCode 4.5.2を使用)Interface Builderで直接動作するメソッドを見つけました-コードを設定しなくても。

(IB)でViewControllerオブジェクトを選択すると、Identity Inspectorの下に「ser Defined Runtime Attributes」というラベルのセクションがあります。 String型のkeyPath "title"を追加し、必要な値に設定しました。

テスト済みで、これはNav Controllerスタックにプッシュされ、モーダルモードで開かれたときに機能します(もちろんModal Nav Controllerで)。

8
user1864957

ナビゲーションアイテムのiboutletを作成するviewcontroller.hファイル

     @property (weak, nonatomic) IBOutlet UINavigationItem *navigationBarTitle;

-「navigationBarTitle」という名前

viewcontroller.mファイルで、スーパーviewDidLoadにコードを追加します

      self.navigationBarTitle.title = @"Favorites";

ナビゲーションバー項目のストーリーボードをnavigationBarTitleに接続します。

4
yogesh yadav

最も簡単な方法は次のとおりです。

[[[self.navigationController navigationBar] topItem] setTitle:@"The Title"];
0
Jouhar

次のコードで既存のナビゲーションバーを使用できます

self.navigationController?.navigationBar.topItem?.title = "Calender"
0
ShaileshAher

私の.hファイル

  • ナビゲーション項目の子をストーリーボードから.hファイルにドラッグしました

  • 「navigationBarTitle」という名前を付けました

私の.mファイル

  • Self.navigationBarTitle.title = @ "Some Title";を追加しました。
0
Devine Linvega