我已经尝试了我能想到的一切。
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方法中。
答案 0 :(得分:1)
您需要设置自定义NavigationBar的项目数组。您应该传入一个包含具有指定标题的项目的数组:
UINavigationBar *bar = [[[UINavigationBar alloc] init] autorelease];
UINavigationItem *navItem = [[[UINavigationItem alloc] initWithTitle:@"Title"] autorelease];
bar.items = [NSArray arrayWithObject:navItem];
答案 1 :(得分:1)
这对我来说总是有用的:
self.navigationItem.title = @"Title";
答案 2 :(得分: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];
}
答案 3 :(得分:0)
如果您正在使用导航控制器,那么</ p>
self.title = @"My Title";
应该在iOS 7中完成。