所以我想更改UIViewController后退按钮上的文本,我希望它满足以下条件:
到目前为止,我找到的答案是 How do I change the title of the "back" button on a Navigation Bar 无法动态更改文本
或者这个 https://stackoverflow.com/a/498089/2925345 这会删除滑动手势。
有没有办法满足这两个标准?
由于
答案 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
但我想要的标题。
从
获得答案我不知道它是如何工作的,我不知道为什么简单地将一个代表分配到一个轻扫手势识别器使得后退按钮的标题可以自定义,我只是按照这个神奇的博客中的说明帖子。感谢zhaoxy_thu让这项工作。