ビューにナビゲーションバーがあり、そのナビゲーションアイテムのタイトルをプログラムで変更したい。
これはどのように行われますか?
UIViewControllerで
self.navigationItem.title = @"The title";
Swift 3バージョン:
Navigation ControllerなしでNavigation Barを使用する場合、これを試すことができます:
navigationBar.topItem?.title = "Your Title"
助けてほしい。
ViewDidLoadで
self.title = @"Title";
Appleドキュメント から:
Navigation Barを使用する最も一般的な方法は、Navigation Controllerを使用することです。ナビゲーションバーをアプリのスタンドアロンオブジェクトとして使用することもできます。
したがって、UINavigationControllerがある場合、ナビゲーションバーのタイトルを設定するために必要なすべてのこと(以前のすべての回答で説明したように)
self.navigationItem.title = @"title";
ただし、UIViewControllerのオブジェクト内にプログラムで作成されたスタンドアロンのナビゲーションバーがある場合、適切なUINavigationItemオブジェクトを作成し、ナビゲーションバーオブジェクトスタックに追加して、ナビゲーションバーの初期外観を設定する必要があります。
上記の手順の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スタンドアロンナビゲーションバーのバージョンについては、 この回答 をご覧ください。
以下のコードをviewDidLoad
に記述するか、initWithNibName:
self.navigationItem.title = @"title";
ありがとう。
また、????????を使用することもできます。
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
UIViewControllerのviewDidLoadで
self.navigationItem.title = "The title";//In Swift 4
トリックをします
上記のステートメントをアプリのデリゲートに入れて、グローバルに複製することもできます。
このコードはうまくいきませんでした
self.navigationItem.title = @"Title here";
しかし、これはうまくいきました。
self.title = "Title Name"
非常に重要な注意:親ビューコントローラーのviewDidLoadメソッド、またはストーリーボードの親ナビゲーションバーで上記の変更を行ってください。
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";
タイトルを更新していて、それが何の効果も引き起こしていない場合があります。これは、topItem
にカスタムビューがある場合です。したがって、次のように更新する必要があります。_(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"
_