可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am using storyboards in my application, and if I set the title property of a ViewController class, that string will appear as the text of my back button when I push a SecondViewController, how can I change this?, I want to put a different title for the back button.
I have used this but it doesn't work:
UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:nil]; [self.navigationItem setBackBarButtonItem: btnBack];
please help me
回答1:
Try this ,
Objective-C:
UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:nil]; self.navigationController.navigationBar.topItem.backBarButtonItem=btnBack;
Swift:
var btn = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: "backBtnClicked") self.navigationController?.navigationBar.topItem?.backBarButtonItem=btn
回答2:
When you use Storyboards you can change the text of the left bar button item aka the back button with no code. You will obviously need a UINavigationController
within your Storyboard so you have the ability to push and pop views.
- Select the Navigation item object for the source view controller
- Enter text into the Back Button option in the inspector view on the right.
Then when a view is pushed from this view it will use this title set.

回答3:
Set a backBarButtonItem to the navigationItem of the previous viewController. Setting the topItem only works on the first time viewWillAppear. Please check this post for detail: iOS Set Navigation Bar Back Button Title
NSArray *viewControllerArray = [self.navigationController viewControllers]; // get index of the previous ViewContoller long previousIndex = [viewControllerArray indexOfObject:self] - 1; if (previousIndex >= 0) { UIViewController *previous = [viewControllerArray objectAtIndex:previousIndex]; previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:backButtonTitle style:UIBarButtonItemStylePlain target:self action:nil]; }
回答4:
Try changing the title of the first view controller where you push the second view controller, and set the tittle to the old one when u pop.
回答5:
Try this:
UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonClicked:)]; [self.navigationItem setLeftBarButtonItem: btnBack]; -(void)backButtonClicked:(UIBarButtonItem*)sender { //do ur stuff }