在XCode 4.5.1中使用导航控制器创建一个故事板应用程序,我很难为任何被推送的视图控制器设置BACK按钮。我正在使用segue,视图控制器按预期显示。但是我想动态更改导航栏和后退按钮的名称并将其放在我的ViewWillAppear中:
self.title = @"Select Songs";
[self.backButton setTitle:@"Add"];
更改导航栏的标题,但后退按钮仍显示推送窗口的名称,而不是文本“添加”。
模拟指标均为推断。我还在Xcode中的视图下方的黑色托盘中添加了一个BarButtonItem,并将viewcontroller的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)
答案 0 :(得分:13)
接受的答案是黑客攻击,这是做到这一点的方法......
就是这样,享受......
答案 1 :(得分:9)
后退按钮将显示上一个视图的标题,如果没有设置标题,它将显示“返回”。
因此,在prepareForSegue方法中,您可以在推送下一个视图之前更改当前视图的标题。然后,后退按钮将显示您设置标题的任何内容。