The buttons in the navigation bar, And the buttons on the right can be added at will. But how do I customize the return button on the left? You will say, add your own button! You can try it.
The correct answer is to overload the pushViewController: animated method of the UINavigationController class.
# Import <UIKit/UIKit. h>
@ Interface MyNavigationController: UINavigationController {
}
@ End
# Import "MyNavigationController. h"
@ Implementation MyNavigationController
-(Void) popself
{
[Self popViewControllerAnimated: YES];
}
-(UIBarButtonItem *) createBackButton
{
Return [[UIBarButtonItem alloc]
InitWithTitle: @ "return"
Style: UIBarButtonItemStyleBordered
Target: self
Action: @ selector (popself)];
}
-(Void) pushViewController :( UIViewController *) viewController animated :( BOOL) animated
{
[Super pushViewController: viewControlleranimated: animated];
If (viewController. navigationItem. leftBarButtonItem = nil & [self. viewControllers count]> 1 ){
ViewController. navigationItem. leftBarButtonItem = [self createBackButton];
}
}
@ End
Replace UINavigationController with MyNavigationController. Or directly create a new category of UINavigationController -- however, this is too poisonous. It affects all navigation controllers. It's better to be human.
Author: kmyhy's column