我有一个应用,我需要禁用interactivePopGestureRecognizer
,因此我的自定义幻灯片菜单不显示。我想我可能已经尝试了所有在SO中提到的所有内容而没有运气。我的.h
包含UIGestureRecognizerDelegate
,在我的.m
文件中,我有以下代码,这些代码在很多问题中都有提及。但它似乎不适用于iOS 8 (I am running 8.3)
。我注意到的另一件事是委托方法gestureRecognizerShouldBegin
被调用但没有效果。
有人知道或找到了解决方法吗?一如既往,感谢您的帮助。仅供参考,此代码在iOS7中运行良好。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return NO;
}
答案 0 :(得分:2)
我发现设置self.navigationController.interactivePopGestureRecognizer.enabled = NO
适用于iOS 8.3,但仅在viewDidLayoutSubviews
中执行。
通过在YES
中将属性设置为viewWillDisappear
来重新启用。
答案 1 :(得分:0)
我希望您在导航代理文件中使用导航控制器作为根视图控制器。
在这种情况下将此代码放在applicationdidfinishlaunching
中if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}