美文网首页iOS
iOS导航控制器pop回之前没有的页面

iOS导航控制器pop回之前没有的页面

作者: 无敌大闸蟹 | 来源:发表于2018-05-25 10:48 被阅读83次

    之前写过一个文章  写的是页面跳转中 A-B-C  遇到从C直接pop回A的情况   实际开发中可能遇到A-B-C然后从C pop到D的情况    这种情况可以通过操作navigationController.viewControllers这个数组解决 
    举个例子 我有三个ViewController的类  分别为MainVC  AVC  BVC  

    然后在MainVC的touchBegan方法写上 push到BVC的页面  

    然后我想从BVC的页面直接返回AVC的页面 因为我们是从mainVC过去的  所以在BVC的时候我们打印下导航控制器的viewcontrollers

    没什么问题  然后我们想从BVC直接返回AVC的话 就需要在这个数组中插入AVC的对象到MainViewController和BViewController之间  所以我们需要拿到导航控制器的viewcontrollers  然后插入AVC的对象 

    这时候我们在打印下

    实现的效果就是从 push阶段: MainVC - BVC
                                       pop阶段 : BVC - AVC - MainVC

    这就可以实现pop到之前没有的页面了  如果不需要从AVC返回MainVC  直接在导航控制器的viewcontrollers 移除MainVC即可  

    PS:我这里是写在touchBegan方法里  项目中应该要写在返回按钮的事件里  另外侧滑也需要处理下  建议不要在返回方法里操作导航控制器的viewcontrollers   直接在页面走完viewdidload就去操作导航控制器的viewcontrollers。

    相关文章

      网友评论

        本文标题:iOS导航控制器pop回之前没有的页面

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