问题出在rootViewController同时包含UITabBarController和UINavigationController。
几经尝试,最后发现,在设置为window.rootViewController
之前,先指定tabBarController.selectedIndex = 0
,问题解决。
可以得出,出现上述错误,是因为XCode不知道你需要push哪个子viewController,在加载navigationController的时候,不知道要载入哪一个controller,于是无脑的将tabBarController的viewControllers都动画载入了。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
UIStoryboard *pStoryBoard = [UIStoryboard storyboardWithName:@"FirstStoryBoard" bundle:nil];
UINavigationController *pNavigationController = [pStoryBoard instantiateInitialViewController];
UITabBarController *pTabBarController = (UITabBarController *)pNavigationController.visibleViewController;
pTabBarController.selectedIndex = 0; /// 就是这句话
[UIApplication sharedApplication].delegate.window.rootViewController = pNavigationController; /// 这句话在其他VC也可以用
[self.window makeKeyAndVisible];
return YES;
}