How to set the title of a Navigation Bar programma

2019-01-22 01:29发布

问题:

I have a Navigation Bar in a view, and I want to change its Navigation Item title programmatically.

How is this done?

回答1:

In your UIViewController

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


回答2:

Swift 3 Version:

If you use a navigation bar without navigation controller, then you can try this:

navigationBar.topItem?.title = "Your Title"

Hope for help.



回答3:

In viewDidLoad

  self.title = @"Title";


回答4:

From Apple Documentation:

The most common way to use a navigation bar is with a navigation controller. You can also use a navigation bar as a standalone object in your app.

So If you have a UINavigationController, all what you have to do to set the title of the navigation bar (as explained in all previous answers)

self.navigationItem.title = @"title";

But If you have a standalone navigation bar that is created programmatically within an object of UIViewController, You have to set the initial appearance of the navigation bar by creating the appropriate UINavigationItem objects and adding them to the navigation bar object stack i.e.

  1. Create an instance of navigation bar (UINavigationBar)
  2. Create an instance of navigation bar item (UINavigationItem) that manages the buttons and views to be displayed in a UINavigationBar object. Note that you set the title at this step.
  3. (Optional Step) Add right/left buttons (instances of UIBarButtonItem) to the navigation bar item.

Sample of Objective-C Code for the mentioned steps:

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];

For Swift version of the standalone navigation bar, check out this answer.



回答5:

Write the below code in viewDidLoad or may be better would be under initWithNibName:

  self.navigationItem.title = @"title";

Thanks.



回答6:

You can also use