美文网首页iOS小贴士ios实用开发技巧小知识点
iOS开发小贴士—APP界面跳转卡死问题

iOS开发小贴士—APP界面跳转卡死问题

作者: Jun_简书 | 来源:发表于2017-08-09 16:35 被阅读295次

    本人项目中出现偶发性的从A页面跳转B页面卡死问题。并不是crash,断点显示跳转代码已经运行,只是界面卡主,返回主界面再返回程序,跳转完成。

    分析发生原因

    1、界面某控件内存未释放,导致的内存的溢出(可能性不大,ARC且界面并不复杂)
    2、手势冲突(可能性较大)
    3、是否跟Tabbar和Navigation有关

    解决方案

    经过上网查找方案,以及自己分析代码。最终判断是手势冲突问题(此情况主要发生在一级页面与二级页面之间且基VC右划返回手势也可以响应,因为没有上一级页面,导致整个程序页面不响应)
    向一级页面添加如下代码即可:

    -(void)viewDidAppear:(BOOL)animated{
    
        [super viewDidAppear:animated];
    
        [self forbiddenSideBack];
    
    }
    
    - (void)viewDidDisappear:(BOOL)animated {
    
        [super viewDidDisappear:animated];
    
        [self resetSideBack];
    
    }
    
    #pragma mark -- 禁用边缘返回
    -(void)forbiddenSideBack{
    
        self.isCanBack = NO;
    
         //关闭ios右滑返回
    
        if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    
            self.navigationController.interactivePopGestureRecognizer.delegate=self;
    
        }
    
    }
    
    #pragma mark --恢复边缘返回
    - (void)resetSideBack {
    
        self.isCanBack=YES;
    
        //开启ios右滑返回
    
        if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    
            self.navigationController.interactivePopGestureRecognizer.delegate = nil;
    
        }
    
    }
    
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {
    
        return self.isCanBack;
    
    }
    

    相关文章

      网友评论

      • 一纸符文:我一个接手的项目点击cell进入下一个页面有时候要多点几次才能调整,然后用着用着返回第一个爷们也卡死了,点击哪里都没有反应
      • 初心丶可曾记:你重写的UINavigationController push 方法统一设置leftItem返回键,然后又没处理rootController的侧滑手势
        Jun_简书:对对对 就是这个样子,一句话就表述清楚

      本文标题:iOS开发小贴士—APP界面跳转卡死问题

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