UINavigationBar - 以编程方式设置标题?

Ave*_*Pro 77 iphone uinavigationbar ios xcode4

我有一个标签栏应用程序,每个选项卡上有不同的视图.每个视图都有一个UINavigationBar,其标题在Interface Builder上设置.我想根据ViewDidLoad方法中的子句更改标题,所以如果x {更改标题}.

我试过self.title = @"title",但这会更改标签栏项目本身的标题.

那么,这是怎么做到的?

Gre*_*reg 201

我已使用以下代码以编程方式设置标题:

navBar.topItem.title = @"title";
Run Code Online (Sandbox Code Playgroud)

其中navBar被声明为链接到界面构建器中导航栏的IBOutlet UINavigationBar.这在我的应用程序中有效; 但是,我没有使用标签栏.

如果navBar.topItem是标签栏项目,我没有看到一种方法可以更改导航栏上显示的标题而不更改标签栏项目上的标题,因为navBar的topItem和标签栏项目是同一个对象.

  • 工作得很完美,知道我忘了做某事; 这就是将IBOutlet UINavigationBar链接到栏本身.标题和标签文本是相互独立的,顺便说一下. (2认同)

Chr*_*isP 71

使用

self.navigationItem.title = @"the title";
Run Code Online (Sandbox Code Playgroud)

因为设置navBar.topItem.title不适用于所有情况.

  • NB只能与与视图控制器关联的UINavigationBar一起使用.从文档":这是一个UINavigationItem的唯一实例,用于在视图控制器被推送到导航栏时表示它.第一次访问此属性时,会创建UINavigationItem.因此,如果您访问此属性,则不应访问此属性.你没有使用导航控制器" (4认同)

Muz*_*mil 25

用这个 :

    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]; 
Run Code Online (Sandbox Code Playgroud)

要么

self.tableView.tableHeaderView = navBar; etc
Run Code Online (Sandbox Code Playgroud)


Aug*_*P A 11

如果类是一种UIViewController,那么您可以在viewDidLoad方法中设置title.

    [self setTitle:@"My Title"];
Run Code Online (Sandbox Code Playgroud)


iAn*_*kit 7

在ViewController.m的ViewDidLoad中写一下,

self.navigationItem.title=@"Hello World";
Run Code Online (Sandbox Code Playgroud)

这是输出:

在此输入图像描述


小智 6

创建IBOutletUINavigationBar

navigationBar.topItem.title = @"Title";
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.