ios - InteractivePopGestureRecognizer 导致应用卡住

标签 ios objective-c interactivepopgesture

在我的应用程序中,我有不同的 Controller 。当我将 controller1 推到导航 Controller 并向后滑动时,一切正常。但是,如果我将导航 controller1 插入 controller1 推 controller2 并尝试向后滑动,我会得到一个卡住的应用程序。如果通过后退按钮返回一切正常。

我怎样才能发现问题?

最佳答案

我在使用滑动弹出手势时遇到了类似的卡住界面问题。 在我的例子中,问题出在 controller1.viewDidAppear 我正在禁用滑动手势:self.navigationController.interactivePopGestureRecognizer.enabled = NO。因此,当用户开始从 contorller2 向后滑动时,controller1.viewDidAppear 被触发并且手势被禁用,就在它工作期间。

我通过在 controller1 中设置 self.navigationController.interactivePopGestureRecognizer.delegate = self 并实现 gestureRecognizerShouldBegin: 来解决这个问题,而不是禁用手势识别器:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)] &&
            gestureRecognizer == self.navigationController.interactivePopGestureRecognizer) {
        return NO;
    }
    return YES;
}

关于ios - InteractivePopGestureRecognizer 导致应用卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21221581/

相关文章:

ios - 应用内购买 : list of product identifiers is always empty

iOS 7+ 关闭模态视图 Controller 并强制纵向

swift - 使用多个搜索栏和交互式弹出手势时导航项 View 消失

swift - 发生交互式弹出手势时搜索栏消失

objective-c - 我遇到了decimalNumberBySubtracting 和decimalNumberByDividingBy 的问题

iphone - UIApplication-scheduleLocalNotification : very slow when called by UIApplication -appWillTerminate:

ios - 如何在 swift 中将 Objc c Enum 转换为 NSValue

ios - 如何固定应用程序名称 XCODE 我可以这样做

ios - Objective-C 和类集群模式