如何更改UINavigationController后退按钮名称?

Bul*_*lla 57 uiviewcontroller uinavigationcontroller uinavigationitem ios

我有一个UIViewController,我正在从我的第一个视图控制器导航到第二个视图控制器,我想要更改显示的按钮的名称navigationcontroller以便返回....

SecondViewController *secondController = [[SecondViewController alloc]
                                              initWithNibName:nil
                                              bundle:NULL]; 
[self.navigationController pushViewController:secondController  animated:YES];
Run Code Online (Sandbox Code Playgroud)

现在在第二个viewcontroller我想改变按钮的名称navigationController.

Mic*_*lum 183

如果您希望以编程方式执行此操作,可以这样做:

Objective-C的

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"Custom"
                                                             style:UIBarButtonItemStyleBordered
                                                            target:nil
                                                            action:nil];

[self.navigationItem setBackBarButtonItem:backItem];
Run Code Online (Sandbox Code Playgroud)

迅速

let backItem = UIBarButtonItem(title: "Custom", style: .Bordered, target: nil, action: nil)
navigationItem.backBarButtonItem = backItem
Run Code Online (Sandbox Code Playgroud)

但是,如果您更喜欢使用Interface Builder,只需选择要为其设置后退按钮的UINavigationItem,然后导航到属性检查器以更改后退按钮的标题.

在此输入图像描述

注意:重要的是要记住,您必须在视图控制器上配置此项,您将在点击后退按钮时返回,而不是当前可见的视图控制器.

  • 谢谢你.特别是对于说明到底. (10认同)
  • 注释非常重要,应该是更高的字体大小和答案的开头 (3认同)
  • 因为iOS8`UIBarButtonItemStyleBordered`已被弃用,现在应该使用`UIBarButtonItemStylePlain`代替 (3认同)
  • 这个说明非常重要! (2认同)

Rog*_*ger 42

在Interface Builder或Storyboarding中有一种简单的方法.在父视图控制器中,只需将导航项的属性"后退按钮"设置为您想要的任何标题.这是一个例子:

设置后退按钮子视图控制器表单父视图控制器的标题

Villian的Tavern View将"Back"作为Back Button Title,就像我们在父级导航控制器的属性检查器中设置的那样(Best Bars).


Ten*_*kar 34

在viewWillAppear中写这个

self.navigationItem.title = @"List View";
Run Code Online (Sandbox Code Playgroud)

并在ViewWilldisapper中写这个

self.navigationItem.title = @"Back";
Run Code Online (Sandbox Code Playgroud)

它没有故事板.

  • 这不应该是公认的答案.0x7fffffff的答案是支持的方法. (15认同)
  • 通过这种方式,您将在新视图之前看到标题实际发生变化(特别是如果您有动画).如果使用viewDidDisappear执行此操作,则会看到按钮实际更改.NSPostWhenIdle的解决方案更好.最初来自:http://blog.evandavey.com/2008/12/how-to-change-text-on-back-button-in-uinavigationbar-uinavigationcontroller.html (2认同)
  • 这不再起作用了.它也非常hacky.user716216 [http://stackoverflow.com/a/9871741/1195661]的答案应该是正确的答案. (2认同)
  • 这不是一个很好的答案,因为它有效地解决了 - 而不是 - 为视图控制器栏按钮提供的UIKit工具.请参阅下面的@ 0x7ffffffff的答案 (2认同)