iOS Push页面失效问题分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_30162391/article/details/101520278
  1. 因为需求原因, 我们把一个VC做成了一个单例, 导致的问题

  2. 如果在nav.viewControllers中 有了一个即将要Push的VC对象, 那么要改变nav.viewControllers, 如果没有在Push.

  3. 就是如果nav.viewControllers内部有一个vc的单例, 就会跳转失败.

UINavigationController *nav = [KKRootContollerMgr getRootNav];
    
    //1.找到navi栈中是否有KKGameRoomOwnerController
    KKGameRoomOwnerController *gameRoomOwnerVC = nil;
    for (UIViewController *vc in nav.viewControllers) {
        if ([vc isKindOfClass:[KKGameRoomOwnerController class]]) {
            gameRoomOwnerVC = vc;
            break;
        }
    }
    
    //2.没有, 直接push
    if(!gameRoomOwnerVC){
        [[KKRootContollerMgr getRootNav] pushViewController:[KKGameRoomOwnerController sharedInstance] animated:YES];
        return;
    }
    
    //3.有, 要改变navi的vcs
    NSMutableArray *mArr = [NSMutableArray arrayWithArray:nav.viewControllers];
    [mArr removeObject:gameRoomOwnerVC];
    [mArr addObject:[KKGameRoomOwnerController sharedInstance]];
    [nav setViewControllers:mArr animated:YES];

猜你喜欢

转载自blog.csdn.net/sinat_30162391/article/details/101520278