iOS 刪除navigationController棧中得某一個viewController

今天遇到需要刪除某一個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];[這個方法,但是會出現小得問題就放棄使用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章