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

时间:2015-03-30 09:41:17

标签: ios objective-c uikit

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

  1. 在显示视图后,可以动态更改文本。
  2. 从屏幕左边缘向右滑动手势仍然有效。
  3. 到目前为止,我找到的答案是 How do I change the title of the "back" button on a Navigation Bar 无法动态更改文本

    或者这个 https://stackoverflow.com/a/498089/2925345 这会删除滑动手势。

    有没有办法满足这两个标准?

    由于

3 个答案:

答案 0 :(得分:1)

如果未覆盖,导航栏中的左按钮是从前一个视图控制器的navigationItem.backBarButtonItem构造的。要更改文本,您需要执行类似

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

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

最后通过将代理人分配给UINavigation Controller的interactivePopGestureRecognizer来解决这个问题。 它必须在viewWillAppear中或之后按此特定顺序执行

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

一旦我这样做,我就可以更改backBarButtonItem但我想要的标题。

获得答案
  

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

我不知道它是如何工作的,我不知道为什么简单地将一个代表分配到一个轻扫手势识别器使得后退按钮的标题可以自定义,我只是按照这个神奇的博客中的说明帖子。感谢zhaoxy_thu让这项工作。