When I create a custom back button, I use the following code:
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]initWithTitle:@"Yeah" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonPressed:)]; self.navigationItem.leftBarButtonItem = leftButton;
This works fine, and I obtain this result:
I would have the same result, but with an arrow on the left, like this (when it's a standard back button, not a custom one):
How can I simply add this arrow ?
Finally, here's the snippet I use to define the back button's title with the standard left arrow in the current view, not in the parent view :
- (void)viewDidLoad { [super viewDidLoad]; [self setTitle:@"Current View"]; // Get the previous view controller UIViewController *previousVC = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2]; // Create a UIBarButtonItem UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"FooBar" style:UIBarButtonItemStyleBordered target:self action:@selector(yourSelector)]; // Associate the barButtonItem to the previous view [previousVC.navigationItem setBackBarButtonItem:barButtonItem]; }
Here's the result :
Note : However, since it's not possible to add an action on a backBarButtonItem, you can refer to this great post if you want it to.
Updated for Swift
// Prev - no chevron... //navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back !", style: .plain, target: self, action: #selector(backPressed)) // adds the chevron let vc = navigationController?.viewControllers.first let button = UIBarButtonItem(title: "Go Back", style: .plain, target: self, action: #selector(backPressed)) vc?.navigationItem.backBarButtonItem = button
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With