UINavigationController的setViewControllers方法

    上個月進了新公司,讀了新代碼,愈來愈發現以前幾年的iOS開發算是白學了。code

    因爲本人是C++轉iOS開發,不少東西用C++的思惟、方法,甚至直接用C++來實現,寫出了不少爛代碼,致使維護困難,本來蘋果提供的很好的方法都沒有去研究,今天先將其中一個吧:UINavigationController的setViewControllers方法。開發

    UINavigationController應該不少項目中都有用,push和pop是最經常使用的,但不能知足全部需求,若是要刪除中間某個VC,或者重構UINavigationController維護的整個VCs的棧,setViewControllers就能夠派上用場。rem

NSMutableArray * viewControllers = [self.navigationController.viewControllers mutableCopy]; 
for (UIViewController *viewController in [viewControllers reverseObjectEnumerator]) {
        NSString *tempName = NSStringFromClass([viewController class]);
        if ([tempName isEqualToString:viewControllerName]) {
            [viewControllers removeObject:viewController]; 
        }
[self.navigationController setViewControllers:viewControllers animated:YES];

    能夠任意增刪改整個VCs棧的其中一個,知足咱們的跳轉需求,UITabBarController也有一樣的方法io

    該方法支持iOS3.0+,放心使用。
table

相關文章
相關標籤/搜索