Dan*_*li3 22 xcode objective-c ios ios7
因此,我注意到当用户在屏幕的最左侧(在任一方向上)滑动时,我的所有视图都接收到返回(弹出视图)的手势(这是iOS7的新功能)
到目前为止,我已尝试使用以下方法将其关闭:
[self.navigationItem setHidesBackButton:YES];
Run Code Online (Sandbox Code Playgroud)
在NavigationController本身的init内(因为委托似乎正在使用它).
Gab*_*lla 72
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
Run Code Online (Sandbox Code Playgroud)
navigationController?.interactivePopGestureRecognizer?.isEnabled = false
Run Code Online (Sandbox Code Playgroud)
加入Gabriele的解决方案.
要在iOS 7之前支持任何iOS,您需要使用以下代码包装此代码:
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
Run Code Online (Sandbox Code Playgroud)
这将阻止App在iOS 6和iOS 5中崩溃,导致缺少选择器.
小智 5
我在我的项目中使用此解决方案,它仅禁用interactivePopGestureRecognizer并允许您使用其他手势识别器.
- (void)viewDidLoad {
[super viewDidLoad];
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([gestureRecognizer isEqual:self.navigationController.interactivePopGestureRecognizer]) {
return NO;
} else {
return YES;
}
}
Run Code Online (Sandbox Code Playgroud)