我正在使用推送转场在我的 Storyboard 中显示一个新的 ViewController。默认情况下,推送的导航 Controller 上的后栏项目具有“上一个”(底层) Controller 的标题。
为了将后栏项目的标题更改为例如“返回”,我在被推送的 ViewController 中实现了以下内容:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.backBarButtonItem.title = @"Back";
}
但这不会改变后栏项目的标题。我还尝试使用新创建的 UIBarButtonItem,结果相同:后栏项目没有改变。
另一种方法是在执行 segue 的 Controller 中像 prepareForSegue
一样设置后退栏项目。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"pushViewController"]) {
UIViewController *viewController = [segue destinationViewController];
viewController.navigationItem.backBarButtonItem.title = @"Back";
}
}
结果相同:后栏项目标题没有改变。那么如何轻松更改后栏项目的标题呢?提前致谢!
最佳答案
比 Marco 的回答更具体一点,您正在寻找的是:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.title = @"Back";
// ...
}
请注意,恕我直言,这很烦人,因为您可能最终不得不拥有一个以“self.title”在当前时刻应该是什么为中心的整个状态机,而不是仅仅让 Storyboard中的每个场景知道后退按钮应该说什么。
关于ios5 - 通过推送 Segue 改回项目标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089348/