我在视图中有一个导航栏,我想以编程方式更改其导航项标题。
怎么做?
Answers:
在viewDidLoad中
self.title = @"Title";
从苹果文档:
使用导航栏的最常见方法是使用导航控制器。您也可以将导航栏用作应用程序中的独立对象。
因此,如果您有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"];
在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"