-1

我已经尝试了我能想到的一切。

self.navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
self.navigationBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    self.navigationBar.topItem.title = @"Title";
    self.navigationItem.title = @"Title";
    self.title = @"Title";
    self.navigationBar.topItem.titleView.backgroundColor = [UIColor blueColor];
    self.navigationController.navigationBar.topItem.title = @"Title";
[self.view addSubview:self.navigationBar];

我已经尝试了所有这些,希望其中一个可以工作,但没有一个可以。如何更改此导航栏的标题?这是在 UIViewController 的 init 方法中。

4

4 回答 4

1

您需要设置自定义 NavigationBar 的 items 数组。您应该传入一个数组,其中包含一个具有您指定标题的项目:

UINavigationBar *bar = [[[UINavigationBar alloc] init] autorelease];

UINavigationItem *navItem = [[[UINavigationItem alloc] initWithTitle:@"Title"] autorelease];
bar.items = [NSArray arrayWithObject:navItem];
于 2012-07-02T15:34:58.043 回答
1

这总是对我有用:

self.navigationItem.title = @"Title";
于 2012-07-03T18:32:29.450 回答
0

我不完全知道你为什么要把它放在init中,通常我宁愿把这段代码放在viewDidLoad中。

但是,您的代码存在问题的是,当您初始化 UINavigationBar 时,它的 items 数组中没有任何项目。因此,您实际上是在向 nil 发送消息,这不会使您的程序崩溃,但不会做任何事情。

这就是我要做的。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    navigationBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [navigationBar setItems:[NSArray arrayWithObject:[[UINavigationItem alloc]initWithTitle:@"Title"]]];
    navigationBar.topItem.titleView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:navigationBar];
}
于 2012-07-02T15:47:43.513 回答
0

如果您使用的是导航控制器,那么

self.title = @"My Title"; 

应该在 iOS 7 中进行。

于 2013-10-30T12:50:33.543 回答