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

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

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

self.interactivePopGestureRecognizer.delegate = (id)self;

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 带“四老上北京” 带四个老人赶北京,让四老六十多年来扬眉吐气了一把,完成了人生最大心愿,唯一遗憾的是没让老...
    鸿雁相伴阅读 2,939评论 5 6
  • 秋凉入静,静守光阴。风来了,雨落了,花谢了,秋在我心里划过一道浅浅的痕迹。我在八月的诗里落脚,而后种满我的...
    冰夫阅读 619评论 0 0
  • 花开花落又花期,叶繁叶落数四季。 春去秋来迎冬雪,人来人往君相依。
    华丽牵手夙愿缘阅读 1,630评论 0 0

友情链接更多精彩内容