美文网首页
关于APP右滑返回无效和卡死等问题

关于APP右滑返回无效和卡死等问题

作者: _RG | 来源:发表于2018-11-20 11:07 被阅读0次

    自定义返回按钮后, 右滑返回会失效。

    解决方法:

    在BaseViewController里面代码设置 右滑返回的代理
    self.navigationController.interactivePopGestureRecognizer.delegate = self;

    设置完后,有个问题,就是一级页面会右滑时没有上级页面, 会出现卡死现象,

    解决方法:
    1级页面的viewDidAppear方法里面代码设置
    self. navigationController. interactivePopGestureRecognizer.enabled = NO;

    viewWillDisappear方法里面
    self. navigationController.interactivePopGestureRecognizer.enabled = YES;

    如果要某个页面不能右滑返回, 则可以通过

    self.navigationController.interactivePopGestureRecognizer.enabled来控制

    现象1:设置了interactivePopGestureRecognizer的代理时,能右滑返回时, 1级页面右滑时,会出现卡死,
    没有设置interactivePopGestureRecognizer的代理时,右滑返回无效, 1级页面右滑时,不会出现卡死,

    猜测1: 右滑手势必须是navigationController的interactivePopGestureRecognizer设置了代理才会创建,

    原因1: 在设置了代理后, 手势就存在了, 但是在1级页面,
    将代理设置为nil,右滑依然会卡死,证明手势没有随代理为nil而消失,
    1级页面的卡死,不是navigationController调用了代理方法而卡死的,
    是手势触发时, 做了一些系统操作而卡死的,
    不是系统调用interactivePopGestureRecognizer的代理方法而卡死的

    补充原因: 在1级页面navigationController的interactivePopGestureRecognizer的enabled设置为NO, 代理不设置为nil, 右滑不会卡死, 证明卡死跟代理无关

    现象2 : navigationController的interactivePopGestureRecognizer设置了代理,右滑返回就能触发

    证明: 返回事件是在右滑后, 在navigationController的interactivePopGestureRecognizer的代理方法里面执行的

    相关文章

      网友评论

          本文标题:关于APP右滑返回无效和卡死等问题

          本文链接:https://www.haomeiwen.com/subject/smytqqtx.html