默认情况下,后退按钮用作视图控件标题的文本。 我可以在不更改视图控制器标题的情况下更改后退按钮上的文本吗? 我需要这个,因为我有一个视图控制器,标题太长而无法显示,在这种情况下,我想只显示“后退”作为后退按钮的标题。
我尝试了以下无效的方法:
self.navigationItem.leftBarButtonItem.title = @"Back";
感谢。
答案 0 :(得分:167)
尝试
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
通过查看Apple backBarButtonItem文档中的UINavigationItem文档,我发现了这一点。
答案 1 :(得分:97)
(bottom) ControllerA -> ControllerB (top)
...并且您希望在 ControllerB位于顶部时显示的后退按钮中为ControllerA提供较短的标题,您将属性更改应用于 ControllerA 。
所以它更多地出现在self.title
的上下文中,而不像其他左/右键按钮设置器。
答案 2 :(得分:47)
您可以在故事板中执行此操作。找到要返回的视图控制器(具有长标题的视图控制器),选择它的导航项,然后打开属性检查器(Alt + Cmd + 4),插入自定义后退按钮标题。
答案 3 :(得分:40)
谢谢Marco ......帮助了我......
这就是我所做的。
如果您使用tableView导航到不同的视图...请输入代码:
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
在第一个控制器的didSelectRowAtIndexPath
方法中......控制器A。
当您导航到控制器B时,该按钮的标题为“返回”。
答案 4 :(得分:12)
后退按钮从父视图控制器的标题中提取其文本。
在父视图控制器(点击后退按钮时显示的视图控制器)中,将自己的标题设置为后退按钮上的所需文本。
例如,假设我们有一个RootViewController
类。当我们在表视图中单击一个单元格时,我们会推送SecondViewController
的实例。我们希望SecondViewController
实例的后退按钮为“Home”。
viewDidLoad
方法中的:
self.title = @"Home";
SecondViewController.m 的viewDidLoad
方法中的:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
如果您希望后退按钮阅读“返回”,请将父视图控制器的标题设置为@"Back"
;
答案 5 :(得分:10)
这项工作对我来说更好。试试:
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
答案 6 :(得分:9)
如果您使用的是故事板:
就是这样,享受......
答案 7 :(得分:5)
在MonoTouch中,以下工作(在父控制器的ViewDidLoad中):
NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);
答案 8 :(得分:3)
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
这对我有用。
答案 9 :(得分:3)
在父视图控制器中,在视图加载时设置后退按钮:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationItem.backBarButtonItem =
[[UIBarButtonItem alloc] initWithTitle:@"title"
style:UIBarButtonItemStylePlain
target:nil
action:nil];
}
请注意,最后我们不需要在最新的iOS版本中加入autorelease
。
希望这有帮助!
答案 10 :(得分:1)
[self.navigationController.navigationBar.backItem setTitle:@"back"];
它对我有用。您可以用其他东西替换“后退”。
答案 11 :(得分:1)
如果你不想要一个头衔,这个对我有用了!
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
答案 12 :(得分:1)
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
答案 13 :(得分:0)
在Swift5中,无法编辑backBarButtom。因此,我们需要先隐藏backBarButtom,然后使用自定义的leftbarButtom替换backBarButtom。这是详细的解决方案:https://stackoverflow.com/a/63868300/13939003
答案 14 :(得分:0)
//您可以通过在上一个视图控制器中设置标题来实现此目的,如下所示
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for this view
self.navigationItem.title = "My Title"
}
override func viewWillDisappear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for back button in next view
self.navigationItem.title = "Back"
}
答案 15 :(得分:0)
要更改后退按钮标题,请参阅以下代码
document.getElementById("gwd-ad").style.opacity="",
document.getElementById('loading').style.display = 'none'
答案 16 :(得分:0)
如果您不仅要更改“后退”按钮的文本并保持原始的左箭头形状,还要在用户单击“后退”按钮时执行某些操作,我建议您查看我的“{{3 }}”。
答案 17 :(得分:0)
我的解决方案是在视图控制器被推送到导航堆栈时设置标题,并在推送vc关闭之前使用委托方法重置它:
所以当我按下其他视图控制器时,我将标题更改调用视图控制器:
self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"];
self.pushedVC.delegate = self;
[self.navigationController pushViewController:self.pushedVC animated:YES];
self.title = @"Back";
和委托回调函数(我在viewWillDissapear中调用):
-(void)pushedVCWillClose:(PushedVC *)sender
{
self.title = @"Previous Title";
}
答案 18 :(得分:0)
我终于知道为什么这些答案一开始对我不起作用。我在故事板中设置了标题。当我在代码上设置标题时。它有效!
self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
答案 19 :(得分:-1)
这对我有用:
self.navigationController.navigationBar.topItem.title = "Back"