版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
-
因为需求原因, 我们把一个VC做成了一个单例, 导致的问题
-
如果在nav.viewControllers中 有了一个即将要Push的VC对象, 那么要改变nav.viewControllers, 如果没有在Push.
-
就是如果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];