我有一个标签栏应用程序,每个标签上都有不同的视图。每个视图都有一个UINavigationBar,其标题在Interface Builder上设置。我想根据ViewDidLoad方法中的子句更改标题,因此如果x {更改标题}。
我已经尝试过self.title = @"title"
,但这会更改选项卡栏项目本身的标题。
那么,这是怎么做的呢?
我有一个标签栏应用程序,每个标签上都有不同的视图。每个视图都有一个UINavigationBar,其标题在Interface Builder上设置。我想根据ViewDidLoad方法中的子句更改标题,因此如果x {更改标题}。
我已经尝试过self.title = @"title"
,但这会更改选项卡栏项目本身的标题。
那么,这是怎么做的呢?
Answers:
我已经使用如下代码通过编程方式设置了标题:
navBar.topItem.title = @"title";
其中navBar被声明为链接到界面构建器中导航栏的IBOutlet UINavigationBar。这在我的应用中有效;但是,我没有使用标签栏。
如果navBar.topItem是选项卡栏项,则我不希望您更改导航栏上显示的标题而不更改选项卡栏项上的标题,因为navBar的topItem和选项卡栏项是同一对象。
使用
self.navigationItem.title = @"the title";
因为设置navBar.topItem.title
并非在所有情况下都有效。
用这个 :
CGRect navBarFrame = CGRectMake(0, 0, self.tableView.frame.size.width, 44.0);
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:navBarFrame];
UINavigationItem *navItem = [UINavigationItem alloc];
navItem.title = @"Your Title";
[navBar pushNavigationItem:navItem animated:false];
[self.view addSubView:navBar];
要么
self.tableView.tableHeaderView = navBar; etc
如果该类是UIViewController的类型,则可以按照viewDidLoad方法中给定的方式设置标题。
[self setTitle:@"My Title"];
试试这个,
self.navigationItem.title = @"Your title";