在自定义的navgationbarcontrolller的里边设置了边缘滑动返回的代理
- (void)viewDidLoad {
[super viewDidLoad];
// 导航栏背景view
// [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationBar_bg"]
// forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];
// 去除1px阴影线
[self.navigationBar setShadowImage:[[UIImage alloc] init]];
// 设置导航栏标题文字的颜色
NSDictionary *textAttrs = @{ NSForegroundColorAttributeName : HEX_COLOR(0x33333),
NSFontAttributeName : [UIFont boldSystemFontOfSize:16] };
[[UINavigationBar appearance] setTitleTextAttributes:textAttrs];
//*******此处设置之后会给rootvc也添加了此代理,会造成很神奇的一些bug*********
// 边缘滑动代理
self.interactivePopGestureRecognizer.delegate = self;
//公司项目需要将状态栏的文字颜色设置为白色,以下方法即可
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
[[UINavigationBar appearance] setBarTintColor:HEX_COLOR(0xffffff)];
self.navigationController.navigationBar.hidden = NO;
}
//********解决方式 根据childVC的数量不返回rootvc的代理事件*******
// 边缘滑动代理 配合使用解决rootVC的滑动卡顿或者边缘手势的bug
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return self.childViewControllers.count > 1;
}
网友评论