我正在使用Xcode Utility模板。在rootViewController.m中有一个部分为所谓的FlipSideView设置导航栏:
(剪断)
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Title"];
(剪断)
如何以编程方式更改FlipsideViewController类中的导航栏标题?我试过了:
self.navigationItem.title = @"XXXXXX";
没有成功。
答案 0 :(得分:8)
好的,我花了一些时间在这上面,因为我想为实用程序模板应用程序使用NIB布局的便利性,但我希望能够在不保留大量笔尖的情况下进行国际化。
所以,首先要添加到FlipViewController类:
IBOutlet UINavigationBar *navBarItself;
然后,在IB中,控制 - 从导航栏拖动到文件所有者,并连接到文件所有者的navBarItself。
然后,代码:
- (void) viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
navBarItself.topItem.title = @"Peace!!";
}
这看起来像魅力
(添加到ViewDidLoad时也可以使用)
(p.s。此处显示的其他答案对我不起作用)
答案 1 :(得分:4)
你什么时候打电话给那条线?我在ViewDidLoad
方法中调用相同的行,它工作正常。
- (void)viewDidLoad {
self.navigationItem.title = @"Test";
[super viewDidLoad];
}
您如何展示自己的观点?以下是我的一个ViewControllers(tableView)如何呈现另一个(detailView)
[self.navigationController pushViewController:detailController animated:YES];
答案 2 :(得分:0)
Jesse的答案应该有效,但由于你仍然遇到麻烦,首先要检查的地方之一是对navigationItem的引用。
尝试使用该行上的断点调试您的应用,并检查该引用。最有可能的是,呼叫没有发生,因为参考是零。
答案 3 :(得分:0)
如果您的参考号为零,请检查您在IB中的连接。
答案 4 :(得分:0)
self.title = @"Foobar";
应该可以解决问题。
答案 5 :(得分:0)
您可以设置FlipSideViewController的标题以在导航控制器中设置标题,而FlipSideViewController是topViewController。在FlipSideViewController中:
self.title = "Flip Side";
我不确定这个项目是如何布局的,但我认为这就是你所说的。