iPhone:NavigationController导航栏后退按钮文本

iPhone:NavigationController导航栏后退按钮文本,iphone,button,navigationcontroller,Iphone,Button,Navigationcontroller,当我将新的ViewController推到导航控制器堆栈上时,“后退”按钮是上一个控制器的标题 如何将“后退”按钮中的文本更改为“后退”,而不是最后一个控制器的默认名称?您需要在导航控制器上创建一个自定义按钮。将以下代码放入根视图控制器的viewDidLoad中: UIBarButtonItem * tempButtonItem = [[[ UIBarButtonItem alloc] init] autorelease]; tempButtonItem .title = @"Back"; s

当我将新的ViewController推到导航控制器堆栈上时,“后退”按钮是上一个控制器的标题


如何将“后退”按钮中的文本更改为“后退”,而不是最后一个控制器的默认名称?

您需要在导航控制器上创建一个自定义按钮。将以下代码放入根视图控制器的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界面指南并不赞同这一点。(尽管在标题运行很长时间时需要)这不仅使按钮标题为“我的自定义标题”,而且还使导航堆栈中的上一页标题为“我的自定义标题”。