美文网首页
iOS视图push的时候偶尔卡住,push不过去问题

iOS视图push的时候偶尔卡住,push不过去问题

作者: 赑屃王者 | 来源:发表于2021-06-09 10:23 被阅读0次

    问题现象: 遇到一个诡异的问题,我的根视图是Tabbar+navigation,在点击push到另外页面的时候,页面卡住了,导航栏的标题是下个页面的,view还是当前的,然后我按home键,在进入到应用,页面又正常了。

    原因是: 手势pop的问题。当处在navi的根控制器时候, 做一个侧滑pop的操作, 看起来没任何变化, 但是再次push其它控制器时候就会出现上述问题了。这种情况是会出现在我们自定义的navigation中,因为继承自UINavigation后,原先的右划手势被禁掉了,而我们经常会加上一句话打开手势

    self.interactivePopGestureRecognizer.delegate = (id)self;
    

    这时候我们如果在根视图里面执行右划手势,相当于执行了一个pop操作(只是我们没有看到效果而已)。然后接着去执行push,自然就push不到下一级页面了。

    解决方法: 判断当前页面是不是根视图,如果是就禁止掉右划手势,如果不是就打开,一般我们controller都会继承自同一个BaseViewController,在里面写就行,如下:

    // 判断如果是页面是navigationController中的第一个页面就禁止左划手势,不然在第一个页面执行左划手势后在push不到第二个页面
    -(void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
        if (self.navigationController.viewControllers.firstObject == self) {
            self.navigationController.interactivePopGestureRecognizer.enabled = false;
        }else{
            self.navigationController.interactivePopGestureRecognizer.enabled = true;
        }
    }
    

    相关文章

      网友评论

          本文标题:iOS视图push的时候偶尔卡住,push不过去问题

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