UInavigationControlのsetView Controlメソッド

1026 ワード

先月、新しい会社に入社して、新しいコードを読んで、数年前のiOS開発が無駄だったことがますます明らかになりました.
本人はC++回転iOSの开発のため、多くのものはC++の思惟、方法を使って、甚だしきに至っては直接C++で実现して、多くの腐ったコードを书いて、保护の困难を招いて、もともとアップルが提供したとても良い方法はすべて研究していないで、今日まずその中の1つをしましょう:UInavigationControllerのsetView Controllers方法.
UInavigationControllerは多くのプロジェクトで役立つはずです.pushとpopは最もよく使われていますが、すべてのニーズを満たすことはできません.中間のVCを削除したり、UInavigationControllerが維持しているVCs全体のスタックを再構築したりする場合は、setView Controllersが役に立ちます.
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スタック全体の1つを任意に削除して変更することができ、私たちのジャンプニーズを満たすことができます.UItabBarControllerにも同様の方法があります.
この方法はiOS 3をサポートする.0+、安心して使えます.