iOS中UINavigationController实现多级pop回退
2016-03-21 22:42
253 查看
iOS中UINavigationController的应用是非常常见的,我们知道iOS系统中呢对导航栏都是以压栈的方式管理的,通常我们使用到的只是上下级页面间的跳转,但是如果我们从A视图控制器push到B视图控制器,在从B视图控制器push到C视图控制器,那么问题来了,现在我们要从C使用Pop的方式直接回退到A要怎么实现呢?不买关子直接上代码:
只要控制器在之前出现过进入了导航栏的栈中,我们就可以在当前导航栏中获取到当前栈中的所有视图控制器,从中获取到之前的视图控制器,然后执行下面的方法进行回退操作:
通常这种情况下都要出现反向传值,什么?反向传值你不会?好吧,你就去问下万能的度娘吧。这么简单的问题使用通知或者代理就可以实现了!
NSArray *controllers = self.navigationController.viewControllers; for ( id viewController in controllers) { if ([viewController isKindOfClass:[AViewController class]]) { [self.navigationController popToViewController:viewController animated:YES]; } }
只要控制器在之前出现过进入了导航栏的栈中,我们就可以在当前导航栏中获取到当前栈中的所有视图控制器,从中获取到之前的视图控制器,然后执行下面的方法进行回退操作:
[self.navigationController popToViewController:viewController animated:YES];
通常这种情况下都要出现反向传值,什么?反向传值你不会?好吧,你就去问下万能的度娘吧。这么简单的问题使用通知或者代理就可以实现了!
相关文章推荐
- POJ2831 Can We Build This One?(次小生成树)
- String、StringBuffer和StringBuilder的比较
- POJ 2031 Building a Space Station
- UItableView的cell重用机制
- [UI] 精美UI界面欣赏[13]
- iOS之UITabarController选中按钮背景图片颜色问题
- [bzoj3638]k-Maximum Subsequence Sum
- Qemu&KVM第三篇之使用Ubuntu-vm-builder 创建虚拟机
- NSOprationQueue 与 GCD 的区别与选用
- Installtion ID : UUID 统计安装
- apue- chapter 3 文件IO
- ACM程序设计选修课——1058: Lucky Sequence(思考)
- iOS工具种之16进制颜色转为UIColor
- MFC中关于UINT与USHORT
- UI进阶——XMPP即时通讯
- CROC 2016 - Elimination Round (Rated Unofficial Edition) E. Intellectual Inquiry 贪心 构造 dp
- Farey Sequence(欧拉函数)
- INSTALL_FAILED_UID_CHANGED解决办法
- 带大文件飞---威刚UE700-128G优盘速度测试
- 为什么Arduino UNO工作电压是5V,但是需要9V的电源适配器