导航栏标题和返回button名称是相同的?

我在storyboard项目中为导航栏创build了一个标题,但当我移动到下一个viewcontroller时,后退button显示的名称与我之前的导航栏(主导航栏)标题相同。 我可以设置单独的标题和后退button名称吗?

我试过下面的代码,但它不工作? 为什么?

self.navigationItem.title=@"Recent Books"; self.navigationItem.backBarButtonItem.title=@"Back"; 

根据UINavigationItem类参考

“当此导航项目紧挨着堆栈中的顶层项目时,导航控制器将从此导航项目导出导航栏的后退button。[…]如果要为后退button指定自定义图像或标题,您可以将自定义栏button项目(与您的自定义标题或图像)分配给此属性。“

所以,从您推荐其他风险投资的地方,在您的第一个风险投资中尝试一下

 self.navigationItem.title=@"Recent Books"; UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem=backButton; 

假设您正在推动您的视图控制器A – > B

在viewcontroller中尝试在viewDidLoad方法中添加此代码

 UIBarButtonItem *btn_Back = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem=btn_Back; 

所以你会在viewcontroller B中看到你的“后退”button

以下应解决您的问题

 -(void)viewDidAppear:(BOOL)animated { self.navigationController.navigationBar.backItem.title = @"back"; } 

你也可以使用这个Objective-C语法

 [[self.navigationController.navigationBar backItem] setTitle:@"back"]; 

就这样做吧,直到现在我find的最简单的方法之一:

创build一个自定义后退button,并将其添加到导航栏左键项目属性中:

 - (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的标题。

这里是后退button供您参考: 在这里输入图像说明