UINavigationBar – 以编程方式设置标题? iPhone SDK 4

我有一个标签栏应用程序与每个选项卡上的不同视图。 每个视图都有一个UINavigationBar,在Interface Builder上设置标题。 我想改变基于ViewDidLoad方法中的一个条款的标题,所以如果x {改变标题}。

我曾尝试self.title = @"title" ,我在这里读取Stackoverflow – 但这改变了标签栏项目本身的标题。

那么,这是如何完成的?

我已经使用如下代码编程式地设置了标题:

 navBar.topItem.title = @"title"; 

其中navBar被声明为IBOutlet UINavigationBar,链接到界面构build器中的导航栏。 这在我的应用程序工作; 不过,我没有使用标签栏。

如果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 

如果这个类是一个UIViewControllertypes,那么你可以在viewDidLoad方法中设置title。

  [self setTitle:@"My Title"]; 

创buildUINavigationBar IBOutlet

 navigationBar.topItem.title = @"Title"; 

希望这可以帮助。

在您的ViewController.m的ViewDidLoad中,

 self.navigationItem.title=@"Hello World"; 

这是输出:

在这里输入图像说明

我使用了以下内容:

 self.navigationController.navigationBar.topItem.title = @"Title"; 

不过,我也不得不在dispatch块中调用它,因为它在viewDidLoad中调用时不会改变标题。

请注意,为了标题出现在所有导航控制器的委托必须设置为导航栏本身或标题将永远不会显示!

您也可以使用ViewController或TableViewController下的ViewDidLoad来设置标题

 _title = @"Title"; 

要么

 self.title = @"Title"; 

尝试这个,

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