iOS常用

push之后销毁当前控制器

2021-01-07  本文已影响0人  梁森的简书

解决同一个页面无限跳转的问题

在支付宝中有一个找能量的功能,找能量的页面可以跳转多次,且是同一个页面,但点击返回按钮/测滑返回之后直接返回到我的能量页面,中间跳过的所有的页面都被销毁掉了。

需求

点击页面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;
            }
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读