美文网首页
iOS假死问题,导航栏pop引起假死

iOS假死问题,导航栏pop引起假死

作者: 路有点颠簸 | 来源:发表于2019-01-15 11:21 被阅读5次

    引发

    在navigation的rootViewController使用‘边缘返回手势’就是右滑,此时APP无异常,然后任意操作push到二级界面,再pop到该导航控制器rootViewController,此时APP已经假死了,现象是界面卡死,动不了

    解决

    在导航栏的根控制器中

    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
    
        // 如果 Self 是 NavigationController 的 根视图控制器, 则关闭返回手势.
        if (self == [self.navigationController.viewControllers firstObject]) {
            self.navigationController.interactivePopGestureRecognizer.enabled = NO;
        } else {
            self.navigationController.interactivePopGestureRecognizer.enabled = YES;
        }
    }
    
    #pragma mark  - 方法1: 在手势的代理方法中, 判断是否允许启动手势
    #pragma mark -
    #pragma mark 是否允许手势启动
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
        
        // 如果 Self 是 NaivationController 的 根试图控制器, 则不允许启动手势
        if (self == [self.navigationController.viewControllers firstObject]) {
            return NO;
        }
        
        return YES;
    }
    

    原理

    参考https://www.jianshu.com/p/e7ccc6ca0fef,有截图示意

    相关文章

      网友评论

          本文标题:iOS假死问题,导航栏pop引起假死

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