美文网首页
移除navigationController栈中某一个viewC

移除navigationController栈中某一个viewC

作者: 杨鹏_小宝 | 来源:发表于2021-04-27 17:23 被阅读0次
+ (void)removeController:(UIViewController *)vc {
    NSArray* tempVCA = [vc.navigationController viewControllers];
    for(UIViewController *tempVC in tempVCA)  {
        if([tempVC isKindOfClass:[vc class]]) {
            [tempVC removeFromParentViewController];
        }
    }
}

removeFromParentViewController 这个方法会有一些问题,虽然将控制器移除了,但是返回的依然是这个控制器的导航栏

所以采用,break要加,因为不加可能会有些问题

+ (void)removeController:(UIViewController *)vc {
    NSMutableArray* tempVCA = [NSMutableArray arrayWithArray:[vc.navigationController viewControllers]];
    for(UIViewController *tempVC in tempVCA)  {
        if([tempVC isKindOfClass:[vc class]]) {
            [tempVCA removeObject:tempVC];
            break;
        }
    }
    vc.navigationController.viewControllers = tempVCA;
}

相关文章

  • 移除navigationController栈中某一个viewC

    removeFromParentViewController 这个方法会有一些问题,虽然将控制器移除了,但是返回的...

  • ios 跳转到指定Controller

    for(UIViewController*vc inself.navigationController.viewC...

  • iOS 去掉导航栏下边黑线

    //通过设置shadowImage移除黑线[self.navigationController.navigatio...

  • MG --Swift扩展

    Swift 返回栈中特定的任意控制器(存在于navigationController.children) 使用截图...

  • 栈和队列

    栈 栈是一种特殊的线性表, 只能在一端进行操作 添加元素, push, 入栈 移除元素, pop, 出栈, 移除栈...

  • 算法(五):栈

    一、栈(后进先出) JS中没有栈,Array实现栈的所有功能入栈:push出栈:pop // 移除数组最后一项,并...

  • 数据结构与算法(第一季):栈

    一、栈 栈是一种特殊的线性表, 只能在一段进行操作 往栈中添加元素的操作, 一半叫做push, 入栈 从栈中移除元...

  • 栈Stack:什么是栈?❖ 距离栈底越近的数据项,留在栈中的时间 就越长而最新加入栈的数据项会被最先移除❖ 这种次...

  • 04_栈

    栈的初识 栈是一种特殊的线性表,只能在一端进行操作 往栈中添加元素的操作,一般叫做push,入栈 从栈中移除元素的...

  • 06-栈

    栈 栈也是一种特殊的线性表,只能在一端进行操作 往栈中添加元素的操作,一般叫做push,入栈 从栈中移除元素的操作...

网友评论

      本文标题:移除navigationController栈中某一个viewC

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