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