自定义NavigationController
@interface BJNavigationController ()<UIGestureRecognizerDelegate>
@end
@implementation BJNavigationController
+ (void)initialize
{
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.interactivePopGestureRecognizer.delegate = self;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (void)pushViewController:(UIViewController *)viewController
animated:(BOOL)animated
{
if (self.childViewControllers.count > 0) {
viewController.navigationItem.leftBarButtonItem = [self backBarBtnItem];
viewController.hidesBottomBarWhenPushed = YES;
}
[super pushViewController:viewController animated:animated];
}
- (UIBarButtonItem *)backBarBtnItem
{
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[backBtn setTitle:@"返回" forState:UIControlStateNormal];
[backBtn setImage:[UIImage imageNamed:@"nav_backBarBtn"] forState:UIControlStateNormal];
[backBtn setImage:[UIImage imageNamed:@"nav_backBarBtnHL"] forState:UIControlStateHighlighted];
[backBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[backBtn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[backBtn sizeToFit];
backBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
[backBtn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
return [[UIBarButtonItem alloc] initWithCustomView:backBtn];
}
- (void)back
{
[self popViewControllerAnimated:YES];
}
#pragma mark - <UIGestureRecognizerDelegate>
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return self.childViewControllers.count > 1;
}
@end