关闭

iOS 删除navigationController栈中得某一个viewController

标签: ios导航OC
6444人阅读 评论(3) 收藏 举报
分类:

今天遇到需要删除某一个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];[这个方法,但是会出现小得问题就放弃使用了。

1
7

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8993次
    • 积分:151
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:1篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论