两种方法可以设置整个项目的BackBarButtonItem(LeftBarButtonItem)。
方法一:项目里所有的类继承一个基类,可以叫BaseViewController,统一在这个基类里设置UIBarButtonItem的属性。但是这样耦合度太高。
1 [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
方法二:在继承的NavigationController里重新push方法,给LeftBarButtonItem设置一个图片(让UI做)
1 /** 2 * 能拦截所有push进来的子控制器 3 */ 4 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 5 { 6 if (self.viewControllers.count > 0) { // 如果现在push的不是栈底控制器(最先push进来的那个控制器) 7 viewController.hidesBottomBarWhenPushed = YES; 8 9 // 设置导航栏按钮 10 viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithImageName:@"navigationbar_back" highImageName:@"navigationbar_back_highlighted" target:self action:@selector(back)]; 11 } 12 [super pushViewController:viewController animated:animated]; 13 }