iPhone:NavigationController导航栏后退按钮文本
当我将新的ViewController推到导航控制器堆栈上时,“后退”按钮是上一个控制器的标题iPhone:NavigationController导航栏后退按钮文本,iphone,button,navigationcontroller,Iphone,Button,Navigationcontroller,当我将新的ViewController推到导航控制器堆栈上时,“后退”按钮是上一个控制器的标题 如何将“后退”按钮中的文本更改为“后退”,而不是最后一个控制器的默认名称?您需要在导航控制器上创建一个自定义按钮。将以下代码放入根视图控制器的viewDidLoad中: UIBarButtonItem * tempButtonItem = [[[ UIBarButtonItem alloc] init] autorelease]; tempButtonItem .title = @"Back"; s
如何将“后退”按钮中的文本更改为“后退”,而不是最后一个控制器的默认名称?您需要在导航控制器上创建一个自定义按钮。将以下代码放入根视图控制器的viewDidLoad中:
UIBarButtonItem * tempButtonItem = [[[ UIBarButtonItem alloc] init] autorelease];
tempButtonItem .title = @"Back";
self.navigationItem.backBarButtonItem = tempButtonItem ;
self.title = @"Custom Title";
[self pushViewController: newViewController ...];
and in the navigation controller's delegate class
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if([viewController class] == [OldViewController class]) {
viewController.title = @"Your previous title";
}
}
通过在根视图控制器上设置导航栏按钮,按下的视图将显示相应的后退按钮。您实际上可以在主视图控制器的
导航项的标题上设置标题。基本上,每个UIViewController
都有一个小存根UINavigationItem
,其中包含有关如何在UINavigationController
中引用该视图的元数据。默认情况下,该元数据只返回到UIViewController
本身
假设“self”是在UINavigationController
中可见的视图的UIViewController
,则设置:
self.navigationItem.title = @"My Custom Title"
这是使用上一页标题以外的内容制作后退按钮的正确方法
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init];
barButton.title = @"Your Title";
self.navigationItem.backBarButtonItem = barButton;
据我了解:
self.navigationItem.backBarButtonItem.title = @"Your Title";
将使上一页导航栏的标题变为您不想要的标题。在按下新的视图控制器之前,您可以更改导航控制器当前视图控制器的标题:
UIBarButtonItem * tempButtonItem = [[[ UIBarButtonItem alloc] init] autorelease];
tempButtonItem .title = @"Back";
self.navigationItem.backBarButtonItem = tempButtonItem ;
self.title = @"Custom Title";
[self pushViewController: newViewController ...];
and in the navigation controller's delegate class
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if([viewController class] == [OldViewController class]) {
viewController.title = @"Your previous title";
}
}
我知道,这个问题很老了,但我找到了一个很好的解决办法
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init];
barButton.title = @"back";
self.navigationController.navigationBar.topItem.backBarButtonItem = barButton;
从儿童视图工作!使用iOS 7进行测试。您可以通过如下方式在原始控制器的“ViewWillEnglishe”功能中设置后退按钮标题来实现此目的:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for this view
self.navigationItem.title = "My Title"
}
override func viewWillDisappear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for back button in next view
self.navigationItem.title = "Back"
}
要知道,苹果的iPhone界面指南并不赞同这一点。(尽管在标题运行很长时间时需要)这不仅使按钮标题为“我的自定义标题”,而且还使导航堆栈中的上一页标题为“我的自定义标题”。