美文网首页iOS常用
push之后销毁当前控制器

push之后销毁当前控制器

作者: 梁森的简书 | 来源:发表于2021-01-07 16:17 被阅读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;
            }
        }
    }

相关文章

  • push之后销毁当前控制器

    解决同一个页面无限跳转的问题 在支付宝中有一个找能量的功能,找能量的页面可以跳转多次,且是同一个页面,但点击返回按...

  • 2018-03-30

    push下个页面时销毁当前的controllers A --->push 到B --->push到C 点击返回到A...

  • iOS--修改present方向

    下列类似push效果 当前控制器: 目标控制器:

  • 判断当前控制器

    判断当前控制器是不是为导航控制器,是否可以进行push 操作 #pragma mark ---获取当前视图控制器对...

  • push之后移除当前控制器

    push之后移除当前控制器 应用场景 做题页面交卷之后,跳转至答题报告页面。此时为了防止从报告页面返回值做题页面,...

  • 判断ViewController push、pop操作

    在viewWillDisappear中判断当前控制器是push操作还是pop操作:

  • push多次回到指定的控制器

    多次push之后回到指定控制器:假如指定的控制器为BTAddressZoneViewController for ...

  • 踩坑记录

    如果当前页面是push出的页面,切换根视图控制器没问题;如果当前页面是present出的页面,切换跟视图控制器之前...

  • iOS横竖屏切换

    导航控制器PUSH 需求:当前竖屏下情况下,导航栏直接PUSH出一个横屏的控制器,并在POP后返回竖屏状态。效果图...

  • 获取能响应的控制器

    有时候调用导航控制器的push和pop方法时,当前控制器不能响应,常见于UISegment添加的子控制器中调用失效...

网友评论

    本文标题:push之后销毁当前控制器

    本文链接:https://www.haomeiwen.com/subject/kcsooktx.html