iOS 删除navigationController栈中得某一个viewController

原创 2015年11月19日 18:48:15

今天遇到需要删除某一个viewController的需求,即,在一个导航控制器中想跳过某一个vc而pop到更前面的vc。
首先尝试着在navigationController的所有方法中寻找removeXXX的方法或者deleteXXX的方法,但是翻遍navigationController的头文件也没有类似的方法,所以就只能曲线救国,采取其他方法实现类似的功能。在网上搜罗许久终于选择了下面的方法

    NSMutableArray *marr = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
    for (UIViewController *vc in marr) {
        if ([vc isKindOfClass:[theVCYouWantToRemove class]]) {
            [marr removeObject:vc];
            break;
        }
    }
    self.navigationController.viewControllers = marr;

记得break;否则会出一些小问题
之前也试着使用过self removeFromParentViewController];[这个方法,但是会出现小得问题就放弃使用了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

添加和移除子视图控制器(child ViewController)

// add child viewController UIViewController* controller = [self.storyboard instantiateViewCont...

关于navigationController的viewControllers

关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一...

IOS开发中 navigationController.popToViewController的使用

navigationController.popToViewController有三种使用方法。 - (nullable UIViewController *)popViewControllerA...

removeFromParentViewController

注意点: 1.当我们向我们的视图控制器容器中调用removeFromParentViewController方法时,必须要先调用该方法,且parent参数为nil: [将要删除的视图控制器...
  • Rwn4444
  • Rwn4444
  • 2017年02月15日 15:24
  • 1034

Objective-C学习之Container View Controller

Container一个iOS的app很少只由一个ViewController组成,除非这个app极其简单。 当有多个View Controller的时候,我们就需要对这些View Controller...
  • yxys01
  • yxys01
  • 2016年05月26日 14:42
  • 1444

ViewController容器

原文: http://www.cocoanetics.com/2012/04/containing-viewcontrollers/ 在我的一个项目中,我需要实现一种容器式的 view control...
  • kmyhy
  • kmyhy
  • 2014年04月01日 17:48
  • 13634

UIViewController在调removeFromParentViewController时遇到的问题

参考地址:http://stackoverflow.com/questions/8379759/how-does-view-controller-containment-work-in-ios-5 ...

ios 移除 栈中的 uiviewcontroller ,直接返回之前的某个controller

NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.v...

ios/swift 移除 childViewControllers

//移除所有子视图控制器 - (void)removeAllChildViewControllers{ for (UIViewController *vc in self.childViewC...

Swift UINavigationController(导航控制器)的创建及导航栏的设置

Swift语言新建的项目入口为AppDelegate.swift 我们找到 func application(application: UIApplication, didFinishLaunc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 删除navigationController栈中得某一个viewController
举报原因:
原因补充:

(最多只允许输入30个字)