在某些情况下,我想设置具体的inital view
。
基本上是在应用程序的入职和实际使用之间划分。
目前,我正在使用此代码:
- (void)checkWhereUserIsInOnboarding {
UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
if([authStatus isEqual:@3]){ // did get past certain point in onboarding
UIViewController *initialViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"connectNav"];
self.window.rootViewController = initialViewController;
[self.window makeKeyAndVisible];
}
else if(currentUser.objectId == nil){ //no user; he/she is new to the app
UIViewController *initialViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"loginNav"];
self.window.rootViewController = initialViewController;
[self.window makeKeyAndVisible];
}
else{//fully featured users
UIViewController *initialViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"];
self.window.rootViewController = initialViewController;
[self.window makeKeyAndVisible];
}
}
由于我需要在应用程序的生命周期内多次检查,因此此函数以ApplicationDidBecomeActive
方法运行。
然而,当我将这些VC中的一个作为初始视图实例化时,我总是得到一个黑屏大约100毫秒,然后应用程序进入正确的屏幕。
我该如何解决这个问题?
答案 0 :(得分:0)
A"黑屏"似乎暗示你的应用程序在后台被杀死了。如果您换出应用程序然后调用应用程序切换器,您的应用程序是否显示为黑屏?
作为一个起点,在仪器下运行它并观察内存等事情可能是件好事,以确保IOS不会关闭它。