之前项目里面自定义的UINavigationController,发现侧滑手势失灵了,查了好久发现了问题
系统的侧滑手势默认是和系统的NavigationController绑定在一起的,我们自定义的时候,侧滑手势就会失效
刚开始在自定义UINavigationController添加代码:
- __weak typeof (self) weakSelf = self;
- if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
- self.interactivePopGestureRecognizer.delegate = weakSelf;
- }
最终的解决办法:
-(id)initWithRootViewController:(UIViewController *)rootViewController
{
self = [super initWithRootViewController:rootViewController];
if (self)
{
//从栈中取出来最底层的ViewController,关闭滑动返回
self.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
}
return self;
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if (self.viewControllers.count == 1)//主界面的右滑返回手势关闭
{
return NO;
}
else
{
return YES;
}
}