您的位置:首页 > 产品设计 > UI/UE

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];


通常这种情况下都要出现反向传值,什么?反向传值你不会?好吧,你就去问下万能的度娘吧。这么简单的问题使用通知或者代理就可以实现了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: