【问题标题】:[ios]change title of back button on navigation bar[ios]更改导航栏后退按钮的标题
【发布时间】:2020-02-25 02:38:53
【问题描述】:

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

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

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

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

有什么方法可以同时满足这两个条件吗?

谢谢

【问题讨论】:

  • 为什么说stackoverflow.com/questions/1449339/…无法动态更改文字?
  • 不,一旦视图呈现,我尝试做self.navigationItem.backBarButtonItem.text = @"smth else"; 不起作用,它在视图呈现之前起作用
  • 是什么阻止您再次使用不同的文本重新创建整个 barbutton?
  • 滑动手势不起作用
  • 屏幕边缘滑动手势在我们将视图呈现在另一个视图上时不起作用,它仅在视图推送到另一个视图时才起作用。

标签: ios objective-c uikit


【解决方案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";
}

【讨论】:

    【解决方案2】:

    试试这个

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

    【讨论】:

      【解决方案3】:

      最终通过将委托分配给 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 完成这项工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-21
        • 2019-01-16
        相关资源
        最近更新 更多