gpt4 book ai didi

ios - 从 window.rootViewController 呈现

转载 作者:可可西里 更新时间:2023-11-01 06:14:55 25 4
gpt4 key购买 nike

在我的应用程序中,我在 willFinishLaunching 中设置了窗口的 rootViewController。标准。

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,而不必向其中的任何其他 View Controller 添加完成/回调代码我的申请。

有什么想法吗?

最佳答案

您需要延迟显示 View Controller 。我在我的一个项目中使用了这个技巧。

-(void)presentController
{
UIViewController *login = [LoginViewController new];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:welcome];
[self.window.rootViewController presentViewController:nav animated:false completion:nil];
}

延迟调用 performSelector 方法

 [self performSelector:@selector(presentController) withObject:self afterDelay:1.0];

关于ios - 从 window.rootViewController 呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25495489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com