故事板UINavigationController后退按钮文本

时间:2012-10-14 20:32:18

标签: uinavigationcontroller storyboard uinavigationbar uistoryboardsegue

在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)

2 个答案:

答案 0 :(得分:13)

接受的答案是黑客攻击,这是做到这一点的方法......

  1. 打开StoryBoard
  2. 在Document Outline窗口中找到您想要的ViewController 回到
  3. 单击该ViewController的导航项
  4. 在属性浏览器中将后退按钮值更改为自定义磁贴
  5. 就是这样,享受......

答案 1 :(得分:9)

后退按钮将显示上一个视图的标题,如果没有设置标题,它将显示“返回”。

因此,在prepareForSegue方法中,您可以在推送下一个视图之前更改当前视图的标题。然后,后退按钮将显示您设置标题的任何内容。