[ios]更改导航栏上后退按钮的标题

[ios]change title of back button on navigation bar

所以我想更改 UIViewController 的后退按钮上的文本,并且我希望它满足以下条件:

  1. 呈现视图后可以动态更改文本。
  2. 从屏幕左边缘向右滑动手势仍然有效。

到目前为止我找到的答案是 How do I change the title of the "back" button on a Navigation Bar 无法动态更改文本

或者这个 这会删除滑动手势。

有没有办法同时满足这两个条件?

谢谢

如果没有被重写,导航栏中的左按钮是从上一个视图控制器的 navigationItem.backBarButtonItem 构建的。要更改文本,您需要执行类似

的操作
NSInteger count = self.navigationController.viewControllers.count;
if (count >= 2) {
    UIViewController* previousVC = self.navigationController.viewControllers[count-2];
    previousVC.navigationItem.backBarButtonItem.text = @"new text";
}

试试这个

 UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"NewTitle" style:UIBarButtonItemStylePlain
                                target:nil
                                action:nil];
[[self navigationItem] setBackBarButtonItem:newBackButton];

最终通过将委托分配给 UINavigation Controller 的 interactivePopGestureRecognizer 解决了这个问题。 并且它必须在 viewWillAppear 之内或之后执行,以这个特定的顺序

self.navigationItem.backBarButtonItem = backButton;
self.navigationController.interactivePopGestureRecognizer.delegate = self;

完成后,我可以随心所欲地更改 backBarButtonItem 的标题。

我的答案来自

http://blog.csdn.net/zhaoxy_thu/article/details/15811189

我不知道它是如何工作的,我不知道为什么只需将一个委托分配给滑动手势识别器就可以自定义后退按钮的标题,我只是按照这个神奇博客中的说明进行操作 post。感谢 zhaoxy_thu 完成这项工作。