美文网首页
界面右滑返回interactivePopGestureRecog

界面右滑返回interactivePopGestureRecog

作者: 逐水而上 | 来源:发表于2016-12-20 10:59 被阅读27次

    这个问题属于自己没有仔细考虑viewController生命周期引起的。
    在viewDidLoad里添加代码:

    self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;
    

    如果只有两级页面,在二级页面添加这个设置,这样右滑返回是没问题的。
    但是当含有三级或者三级以上页面时,我们在除了一级页面之外的其他页面都添加这个代码,会发现只有最后一级能右滑返回,其他页面都失效了。

    这是因为:
    当栈顶viewController被Pop出栈时self被销毁,即delegate被置为nil,因为其他viewController的viewDidLoad这时候不执行,代理方法自然也不会执行,因此导致其他页面右滑返回失效。

    解决办法:将以上代理设置转移到viewWillAppear方法中。

    以后开发要非常重视生命周期这个东西。

    相关文章

      网友评论

          本文标题:界面右滑返回interactivePopGestureRecog

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