1.建立Category类:
.h:
@interface UIViewController (SMHNavigationBar) - (void)customLeftButton:(NSString*)leftImageName; - (void)onCustomLeftButtonClick:(id)sender; @end
.m:
#define screenWidth [UIScreen mainScreen].bounds.size.width @implementation UIViewController (SMHNavigationBar) - (void)customLeftButton:(NSString*)leftImageName{ UIImage *leftImage = [UIImage imageNamed:leftImageName]; UIButton *navButton = [UIButton buttonWithType:UIButtonTypeCustom]; if (leftImage != nil) { [navButton setImage:leftImage forState:UIControlStateNormal]; } UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 65, 33)]; [navButton addTarget:self action:@selector(onCustomLeftButtonClick:) forControlEvents:UIControlEventTouchUpInside]; if(screenWidth >= 414){ navButton.frame = CGRectMake((screenWidth/61)*3-17, 0, 36, 36); }else{ navButton.frame = CGRectMake((screenWidth/61)*3-14, 0, 36, 36); } [leftView addSubview:navButton]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftView]; } - (void)onCustomLeftButtonClick:(id)sender{ } @end
使用:
[self customLeftButton:@"list2"];
*隐藏回退键:
self.navigationItem.hidesBackButton = YES;