在我的应用程序中,我有不同的控制器。当我将controller1推到导航控制器并滑动到后面时,一切正常。但是,如果我推导航控制器1,然后推入控制器1推控制器2并尝试向后滑动,我会得到一个冻结的应用程序。如果通过后退按钮返回一切正常。
我怎样才能发现问题?
使用滑动弹出手势时,我遇到了类似的冻结界面问题。
就我而言,问题出在controller1.viewDidAppear中,我禁用了滑动手势:self.navigationController.interactivePopGestureRecognizer.enabled = NO
。因此,当用户开始从 contorller2 向后滑动时,controller1.viewDidAppear 被触发,并且手势被禁用,就在它工作期间。
我通过设置解决了这个问题self.navigationController.interactivePopGestureRecognizer.delegate = self
在controller1中并实现gestureRecognizerShouldBegin:
,而不是禁用手势识别器:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)] &&
gestureRecognizer == self.navigationController.interactivePopGestureRecognizer) {
return NO;
}
return YES;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)