在XCode 4.5.1中使用导航控制器创建情节提要应用程序时,我很难尝试为按下的任何视图控制器设置BACK按钮。 我正在使用 segue,视图控制器按预期显示。 但是,我想动态更改导航栏和后退按钮的名称,并将其放置在我的ViewWillAppear中:
self.title = @"Select Songs";
[self.backButton setTitle:@"Add"];
更改导航栏的标题,但后退按钮仍显示推送窗口的名称,而不是文本"添加"。
模拟指标都是推断出来的。 我还在 Xcode 中视图下方的黑色托盘中添加了一个 BarButtonItem,并将视图控制器的 backButton 连接到 backButton,但文本仍然没有出现。
添加以下日志消息也会产生一些有趣的内容:(但标题栏正在正确更新)
-(void) viewDidAppear:(BOOL)animated {
NSLog(@"%s %@", __FUNCTION__, self.navigationItem.backBarButtonItem);
NSLog(@"%s %@", __FUNCTION__, self.navigationController.navigationItem.backBarButtonItem);
}
2012-10-14 15:18:41.835 xxxx[2690:907] -[ViewController viewDidAppear:] (null)
2012-10-14 15:18:41.838 xxxx[2690:907] -[ViewController viewDidAppear:] (null)
公认的答案是黑客,这是这样做的方法......
- 打开情节提要
- 在"文档大纲"窗口中,找到要访问的视图控制器返回
- 单击该视图控制器的导航项
- 在属性资源管理器中,将"后退按钮"值更改为自定义磁贴
就是这样,享受...
后退按钮将显示上一个视图的标题,如果未设置标题,则会显示"后退"。
因此,在 prepareForSegue 方法中,您可以在推送下一个视图之前更改当前视图的标题。然后,后退按钮将显示您设置标题的任何内容。