When you first create / get a reference to the navigation controller, set a global custom back image (replaces the chevron) with:
[self.navigationController.navigationBar setBackIndicatorImage: [UIImage imageNamed:@"CustomerBackImage"]]; [self.navigationController.navigationBar setBackIndicatorTransitionMaskImage: [UIImage imageNamed:@"CustomerBackImage"]];
The title of the back button is owned by the view that it points to, not the current view. You can make it blank by calling
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
in the view that the back button points to. So call it in
prepareForSegue or before
pushViewController:animated: or something. Setting a view controller’s title programmatically seems to reset it, so set it after setting the title.
You’ll see lots of advice to set
self.navigationItem.leftBarButtonItems (which breaks swipe-to-go-back) then mess with
interactivePopGestureRecognizer to fix swipe-to-go-back (which has some exciting doesn’t quite work right edge case problems). Don’t do that. Do this.