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

相关文章
相关标签/搜索