创建一个UINavigationController类
然后自定义返回按钮
和手势
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//手势设置
self.interactivePopGestureRecognizer.delegate =self;
//设置导航背景图片
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
}
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (self.childViewControllers.count>0)
{
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setImage:[UIImage imageNamed:@"个人设置--返回@2x"] forState:UIControlStateNormal];
// [backButton setImage:[UIImage imageNamed:@"navigationButtonReturnClick"] forState:UIControlStateHighlighted];
// [backButton setTitle:@"返回" forState:UIControlStateNormal];
// [backButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
// [backButton setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[backButton sizeToFit];
backButton.contentEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
[backButton addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
//隐藏底部TabBar
viewController.hidesBottomBarWhenPushed = YES;
}
[super pushViewController:viewController animated:animated];
}
- (void)backClick
{
[self popViewControllerAnimated:YES];
}
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
//这是控制bgu的 判断
// if (self.childViewControllers.count == 1)
// {
// return NO;
// }
// return YES;
//手势何时有效 当导航控制器的子控制器个数 > 1 时 有效
return self.childViewControllers.count > 1;
}
网友评论