[英]Navigationbar title and back button name are same?
我在storyboard项目中为导航栏创建了一个标题,但当我移动到下一个viewcontroller时,后退按钮显示的名称与我之前的导航栏(主导航栏)标题相同。 我可以设置单独的标题和后退按钮名称吗?
我尝试了下面的代码,但它不起作用? 为什么?
self.navigationItem.title=@"Recent Books";
self.navigationItem.backBarButtonItem.title=@"Back";
“当此导航项位于堆栈顶部项目的正下方时,导航控制器将从此导航项中导出导航栏的后退按钮。[...]如果要为后退按钮指定自定义图像或标题,您可以将自定义栏按钮项目(包含您的自定义标题或图像)分配给此属性。“
所以在你推动其他VC的第一个VC中尝试这个
self.navigationItem.title=@"Recent Books";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle:@"Back"
style:UIBarButtonItemStylePlain
target:nil
action:nil];
self.navigationItem.backBarButtonItem=backButton;
假设你正在推动你的viewcontroller A - > B.
在viewcontroller中尝试在viewDidLoad
方法中添加此代码
UIBarButtonItem *btn_Back = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem=btn_Back;
因此,您将在viewcontroller B中看到“Back”按钮
以下内容可以解决您的问题
-(void)viewDidAppear:(BOOL)animated
{
self.navigationController.navigationBar.backItem.title = @"back";
}
您也可以使用此Objective-C语法
[[self.navigationController.navigationBar backItem] setTitle:@"back"];
就这样做,这是我到目前为止找到的最简单的方法之一:
创建自定义后退按钮并将其添加到导航栏左按钮项属性中:
- (void)viewDidLoad
{
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *backBtnImage = [UIImage imageNamed:@"Backnavigation.png"] ; // Here set the back button image
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside];
backBtn.frame = CGRectMake(0, 0, 24, 24);
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;
self.navigationItem.leftBarButtonItem = backButton;
}
//Handle the Back Button Event
- (void) handleBack:(id)sender
{
// do your custom handler code here
[self.navigationController popViewControllerAnimated:YES];
}
此外,通过这种方式,您无需每次都更改NavigationBar的标题。
这是后退按钮供您参考:
您可以在视图控制器的viewWillAppear(animated:Bool)方法中使用以下代码,您可以在其中设置您选择的backButton标题: self.navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "Back Title", style: .plain, target: nil, action: nil)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.