プログラムでナビゲーションバーのタイトルを設定するにはどうすればよいですか?


84

ビューにナビゲーションバーがあり、そのナビゲーションアイテムのタイトルをプログラムで変更したい。

これはどのように行われますか?

回答:


204

UIViewControllerで

self.navigationItem.title = @"The title";

はい、これを選択します。これは、navigationItemのタイトルのみを更新し、toolbarItemのタイトルは更新しないためです。
プラカシュラマン

30

Swift 3バージョン:

ナビゲーションコントローラーなしでナビゲーションバーを使用する場合は、次のことを試すことができます。

navigationBar.topItem?.title = "Your Title"

助けを願っています。


11

viewDidLoadで

  self.title = @"Title";

3
私の2セント:)vewcontrollerがtoolbarcontrollerの一部である場合でも、これは機能します。次に、toolbaritemのタイトルも更新されます。
プラカシュラマン

7

Appleのドキュメントから:

ナビゲーションバーを使用する最も一般的な方法は、ナビゲーションコントローラーを使用することです。ナビゲーションバーをアプリのスタンドアロンオブジェクトとして使用することもできます。

したがって、UINavigationControllerがある場合、ナビゲーションバーのタイトルを設定するために必要なすべてのこと(これまでのすべての回答で説明されているように)

self.navigationItem.title = @"title";

ただし、UIViewControllerのオブジェクト内にプログラムで作成されたスタンドアロンのナビゲーションバーがある場合は、適切なUINavigationItemオブジェクトを作成し、それらをナビゲーションバーオブジェクトスタックに追加して、ナビゲーションバーの初期外観を設定する必要があります。

  1. ナビゲーションバーのインスタンスを作成する(UINavigationBar)
  2. UINavigationBarオブジェクトに表示されるボタンとビューを管理するナビゲーションバーアイテム(UINavigationItem)のインスタンスを作成します。このステップでタイトルを設定することに注意してください。
  3. (オプションの手順)ナビゲーションバーアイテムに右/左ボタン(UIBarButtonItemのインスタンス)を追加します。

上記の手順のObjective-Cコードのサンプル:

UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];

/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];

/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;

/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;

/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];

/* add navigation bar to the root view.*/
[self.view addSubview:navbar];

スタンドアロンナビゲーションバーのSwiftバージョンについては、この回答を確認してください。


6

以下のコードを書くか、以下のviewDidLoad方が良いかもしれませんinitWithNibName:

  self.navigationItem.title = @"title";

ありがとう。



2

このコードは私には機能しませんでした

self.navigationItem.title = @"Title here";

しかし、これはうまくいきました。

self.title = "Title Name"

2

UIViewControllerのviewDidLoadで

self.navigationItem.title = "The title";  //In swift 4

または

あなたはただできる

self.title = "The title"

トリックを行います

上記のステートメントをアプリデリゲートに配置して、グローバルに複製することもできます。


0

ViewDidLoadメソッドで使用します

フォーマット :

@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.

例:

self.navigationItem.title = @"Title here";

0

非常に重要な注意:親ビューコントローラーのviewDidLoadメソッド、またはストーリーボードの親ナビゲーションバーで上記の変更を必ず行ってください


0

タイトルを更新しているのに効果がない場合があります。これは、カスタムビューがある場合であるtopItemため、次のように更新することをお勧めします。(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.