2011-11-08 57 views
10

当我将视图按到导航控制器上时,后退按钮的标题get被设置为前一个视图的标题。我怎样才能让后退按钮只是说“返回”?如何将UINavigationBar后退按钮的标题更改为“返回”

+0

值得一提的是,iOS的人机界面指南指定返回按钮“应与上一级别的标题标记”,以帮助定向用户:https://developer.apple .com/library/ios/documentation/userexperience/conceptual/mobilehig/Bars.html#// apple_ref/doc/uid/TP40006556-CH12-SW3 – cleverbit

回答

30

写这样的代码在你的viewwillappear

UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:nil action:nil]; 
self.navigationItem.backBarButtonItem = _backButton; 
[_backButton release]; 
_backButton = nil; 
+0

这看起来或者看起来都不像后退按钮。 – jrturton

+3

是的。 'backBarButtonItem'属性专门设计用于这样的工作,并将从您给它的'UIBarButtonItem'中取得标题或自定义视图,并将其设置为背面样式按钮。 –

+1

只是想说,作为这个问题的提问者,这个解决方案肯定为我工作。我只需要将代码添加到正在推送新视图的视图控制器的viewWillAppear中。 – cgossain

3

在前面视图控制器,有它设置其标题中viewWillAppear,然后在推新视图控制器的代码,它改变其标题'背部。'

例子:

-(void)showNextScreen{ 
    [self setTitle:@"Back"]; 
    [self.navigationController pushViewController:asdf animated:YES]; 
} 
-(void)viewWillAppear{ 
    [super viewWillAppear]; 
    [self setTitle:@"My Actual Title"]; 
} 
+0

听起来不错..但当新屏幕出现时,过去的屏幕看起来回到标题中,这是不可取的。不错的主意,但! – nithinreddy

+0

如果你正在阅读这个答案 - >使用接受的答案,而是更好! – Tim