zoukankan      html  css  js  c++  java
  • 时间紧迫,写一些 NavigationController 一次性返回2级界面甚至更多级的界面

    在NavigationController中,调用pushViewController可以将界面推到指定的界面,调用popToViewController可以返回上层界面,可是它的实现原理是什么?

    好吧,说到原理,就要看源码,可是源码被封装了,看不到,那就不谈原理,那就谈谈 它为什么知道你pop的是上一层的viewcontroller,而不是别的呢?在Navigationcontroller的属性列表中,我们可以发现一个属性:viewControllers ,对,就是它! 它将你所有push的viewcontroller 全部装进,然后通过索引来找到你要pop的viewcontroller。

    如果当前界面在viewControllers 中的索引是 3,那么popToViewController(返回上层界面) 只是 拿到索引是2的vc。

    知道这个原理,那么我们不就可以为所欲为的返回到指定界面了吗?

    来一个返回2级界面的代码:

     //当前vc 在数组中的索引
                    NSInteger index=[kAPPDELEGATE.navigationController.viewControllers indexOfObject:self];
                    //退出成功  获取素组中 当前索引-2 的viewcontroller,然后popTo指定vc
                    [kAPPDELEGATE.navigationController popToViewController:[kAPPDELEGATE.navigationController.viewControllers getObjectAtIndex:index-2] animated:YES];
  • 相关阅读:
    python--输出spwm的数组
    爬虫二:爬取糗事百科段子
    爬虫一:爬取信息
    Python中的切片操作
    JSON
    python 中的异常处理与种类
    register的功能
    static的功能
    网络安全的认识
    VMware5.5-vCenter Converter(转换)
  • 原文地址:https://www.cnblogs.com/niit-soft-518/p/4724353.html
Copyright © 2011-2022 走看看