nav设置 边缘滑动代理interactivePopGestureRecognizer.delegate = self

在自定义的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;
}

你可能感兴趣的:(nav设置 边缘滑动代理interactivePopGestureRecognizer.delegate = self)