解决同一个页面无限跳转的问题
在支付宝中有一个找能量的功能,找能量的页面可以跳转多次,且是同一个页面,但点击返回按钮/测滑返回之后直接返回到我的能量页面,中间跳过的所有的页面都被销毁掉了。
需求
点击页面A push到页面B,点击页面B push到页面B,在B页面点击返回或测滑返回直接返回到页面A。
实现思路
页面push是一个进栈的操作,pop是一个出栈的操作。我们可以获取到进栈的所有VC,在B页面中查看进栈的所有VC,如果页面B的数量大于1就将最开始入栈的VC从所有的VC中移除。
代码实现
NSMutableArray * mutableArr = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
int count = 0;
int first = 0;
for (int i = 0; i < self.navigationController.viewControllers.count; i ++) {
UIViewController * vc = self.navigationController.viewControllers[i];
if ([vc isKindOfClass:[ListViewController class]]) {
count ++;
if (count == 1) {
first = i;
}
if (count > 1) {
[mutableArr removeObjectAtIndex:first];
self.navigationController.viewControllers = mutableArr;
break;
}
}
}
网友评论