时间紧迫,写一些 NavigationController 一次性返回2级界面甚至更多级的界面
2024-09-21 21:23:50
在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-] animated:YES];
最新文章
- Ubuntu apt 常用命令
- ContextMenuStrip 类
- 关于SVN链接服务器Unable to connect to a repository at URL*报错问题
- Xamarin.iOS Unified API 注意要点
- codeforces E. Famil Door and Roads 期望
- angular 国际化
- 《Programming with Objective-C》
- 烂泥:KVM安装centos6.5系统
- IIS与Apache共用80端口方法[试用成功]
- bzoj3275: Number
- Android获取系统cpu信息,内存,版本,电量等信息
- java 钱币的单位转换
- 解读为什么有符号的char可表示范围是-128~+127
- 自定义清除重复uses-permission申明的AS插件
- qt5.5.0成功移植到IMX6中
- const 相关知识 const和指针、const和引用
- Zabbix系列之七——添加磁盘IO监测
- MS SQL自定义函数IsPositiveInteger
- 【AtCoder】【思维】【图论】Splatter Painting(AGC012)
- jmeter用Windows电脑分布式部署