【发布时间】:2014-10-19 04:03:22
【问题描述】:
在我的应用程序中,我将窗口的 rootViewController 设置为 willFinishLaunching。标准。
在didFinishLaunching 中,我检查用户是否已登录,如果没有,我会提供一个 LoginViewController。
- (BOOL)application:(UIApplication *)application willFinishLaunching...
{
...
self.window.rootViewController = [MyViewController new];
[self.window makeKeyAndVisible];
...
return true;
}
- (BOOL)application:(UIApplication *)application didFinishLaunching...
{
if (/* not logged in */) {
UIViewController *login = [LoginViewController new];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:welcome];
[self.window.rootViewController presentViewController:nav animated:false completion:nil];
}
return true;
}
在 iOS 7 中,这可以完美运行。但是,在 iOS 8 中,我在控制台中看到以下警告:
Unbalanced calls to begin/end appearance transitions for <LoginViewController: 0x7fca9340cbb0>.
我不太确定我需要做些什么来避免这个警告,同时仍然能够展示我的 LoginViewController。
我喜欢从window.rootViewController 进行演示,因为它允许我在用户登录时关闭LoginViewController,而无需向我的应用程序中的任何其他视图控制器添加完成/回调代码。
有什么想法吗?
【问题讨论】:
-
谢谢。奇怪的是我在 iOS 7 中没有收到该警告。
-
在 iOS7 中,这不是一个东西......一个东西......这就是你没有看到它的原因。 :)
-
尝试使用 [self.window makeKeyAndVisible];就在展示您的导航控制器之前。
标签: ios objective-c ios7 uiviewcontroller ios8