我正在使用push segue在我的Storyboard中显示一个新的ViewController。默认情况下,推送的导航控制器上的后栏项具有“上一个”(底层)控制器的标题。
为了将后栏项的标题更改为例如“Back”,我在ViewController中实现了以下内容:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.backBarButtonItem.title = @"Back";
}
但这不会改变后栏项目的标题。我也尝试使用新创建的UIBarButtonItem,结果相同:后栏项不会改变。
另一种方法是在控制器中执行segue的prepareForSegue
中设置后栏项。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"pushViewController"]) {
UIViewController *viewController = [segue destinationViewController];
viewController.navigationItem.backBarButtonItem.title = @"Back";
}
}
结果相同:后栏项目标题不会改变。那么如何轻松更改后栏项目的标题?提前谢谢!
答案 0 :(得分:3)
要比Marco的答案更具体一点,你要找的是:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.title = @"Back";
// ...
}
请注意,这是恕我直言,非常烦人,因为你可能最终必须让一个完整的状态机围绕“self.title”应该在当前时刻,而不是只是在故事板中的每个场景知道后退按钮应该说什么。
答案 1 :(得分:2)
在源视图控制器中设置navigationItem.backBarButtonItem.title,而不是目标视图控制器。
答案 2 :(得分:0)
将后栏项目的标题添加到“故事板 - > VC-> NavigationItem”示例中作为“后退”, 当准备segue时,设置:
self.navigationItem.backBarButtonItem.title = @"Need a Title :)";