默认情况下,后退按钮使用视图控制器的标题作为其上的文本。我可以在不更改视图控制器标题的情况下更改后退按钮上的文本吗?我需要这个,因为我有一个视图控制器,它的标题太长而无法显示,在这种情况下,我想只显示“返回”作为后退按钮的标题。
我尝试了以下不起作用:
self.navigationItem.leftBarButtonItem.title = @"Back";
谢谢。
默认情况下,后退按钮使用视图控制器的标题作为其上的文本。我可以在不更改视图控制器标题的情况下更改后退按钮上的文本吗?我需要这个,因为我有一个视图控制器,它的标题太长而无法显示,在这种情况下,我想只显示“返回”作为后退按钮的标题。
我尝试了以下不起作用:
self.navigationItem.leftBarButtonItem.title = @"Back";
谢谢。
尝试
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
我通过查看Apple 的UINavigationItem文档中的backBarButtonItem文档发现了这一点。
Marc W 的方法在我确定将其应用于哪个控制器后效果很好:重新命名的控制器,而不是顶部的控制器。因此,如果这是导航堆栈:
(bottom) ControllerA -> ControllerB (top)
...并且您想在ControllerB 位于 top时显示的后退按钮中为 ControllerA 提供更短的标题,您将属性更改应用于ControllerA。
所以它更多的是在上下文中self.title
,而不是像其他左/右栏按钮设置器。
您可以在情节提要中进行。找到你想要返回的视图控制器(带有长标题的那个),选择它的导航项,然后打开属性检查器(Alt+Cmd+4),插入自定义的后退按钮标题。
谢谢马可...这对我有帮助...
这就是我所做的。
如果您使用 tableView 导航到不同的视图...输入代码:
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
在你的didSelectRowAtIndexPath
方法中......第一个控制器......控制器A。
当您导航到控制器 B 时,按钮的标题将是“返回”。
后退按钮从父视图控制器的标题中提取其文本。
在父视图控制器(点击后退按钮时出现的视图控制器)中,将其自己的标题设置为后退按钮上所需的文本。
例如,假设我们有一RootViewController
堂课。当我们在其表格视图中单击一个单元格时,我们推送一个SecondViewController
. 我们希望实例的后退按钮显示为SecondViewController
“Home”。
在RootViewController.mviewDidLoad
的方法中:
self.title = @"Home";
在SecondViewController.mviewDidLoad
的方法中:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
如果您希望您的后退按钮显示“后退”,请将父视图控制器的标题设置为@"Back"
;
这对我来说更好。尝试 :
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
如果您使用情节提要:
就是这样,享受...
在 MonoTouch 中,以下工作(在父控制器的 ViewDidLoad 中):
NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
这对我有用。
在您的父视图控制器中,在视图加载时设置后退按钮:
- (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];
}
请注意,我们不需要autorelease
在最后包含最新的 iOS 版本。
希望这可以帮助!
[self.navigationController.navigationBar.backItem setTitle:@"back"];
这个对我有用。您可以将“返回”替换为其他内容。
如果您不想拥有头衔,这对我有用!
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
我终于知道为什么这些答案起初对我不起作用。我在情节提要中设置了标题。当我在代码上设置标题时。有用!
self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
我的解决方案是在视图控制器被推送到导航堆栈时设置标题,并在推送 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";
}
如果您不仅要更改后退按钮的文本并保持原来的左箭头形状,还要在用户单击后退按钮时做一些事情,我建议您看看我的“ CustomNavigationController ”。
要更改返回按钮标题,请参阅下面的代码
InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES];
//Below code changed back button title on InformationVC page.
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil];
self.navigationItem.backBarButtonItem = backBarButton;`enter code here`
//可以通过在上一个视图控制器中设置标题来实现,如下图
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"
}
在 Swift5 中,无法编辑 backBarButtom。因此,我们需要先隐藏 backBarButtom,然后使用自定义的 leftbarButtom 替换 backBarButtom。这是详细的解决方案:https ://stackoverflow.com/a/63868300/13939003
这对我有用:
self.navigationController.navigationBar.topItem.title = "Back"