iOS界面卡死但不崩溃

猜测可能原因

1、底部Tabbar隐藏、显示调用频繁,或者重复调用

2、右划返回手势冲突

研究历程

1、多次使用,发现出现的情况多在一级页面跳转到二级页面,Tabbar卡死,点Home键切换APP到后台,重新打开,右划返回后即可使用

得出结果

1、在RootViewController右划返回手势也可以响应,因为没有上一级页面,导致整个程序页面不响应

APP做出如下修改

在一级页面进入和离开时 分别添加禁用和开启右滑返回手势

-(void)viewDidAppear:(BOOL)animated{

    

    [super viewDidAppear:animated];

    

    [self forbiddenSideBack];

    

}


- (void)viewDidDisappear:(BOOL)animated {

    

    [super viewDidDisappear:animated];

    

    [self resetSideBack];

    

}


//禁用手势

/**

 

 * 禁用边缘返回

 

 */


-(void)forbiddenSideBack{

    

    self.isCanSideBack = NO;

    

    //关闭ios右滑返回

    

    if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

        

        self.navigationController.interactivePopGestureRecognizer.delegate=self;

        

    }

    

}


/*

 

 恢复边缘返回

 

 */


- (void)resetSideBack {

    

    self.isCanSideBack=YES;

    

    //开启ios右滑返回

    

    if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

        

        self.navigationController.interactivePopGestureRecognizer.delegate = nil;

        

    }

    

}


- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {

    

    return self.isCanSideBack;

    

}




这部分是我个人补充部分,非转载部分

我在总结一个问题,如果你的导航栏都有一个基类导航栏控制器的话,直接在基类导航控制器中写入下代码,更可以简洁解决上述问题 只是在修改手势代理的返回结果操作
iOS界面卡死但不崩溃