gpt4 book ai didi

objective-c - AppDelegate、rootViewController 和 presentViewController

转载 作者:IT老高 更新时间:2023-10-28 11:45:35 24 4
gpt4 key购买 nike

我正在做 Facebook 集成教程,如果用户有当前状态的有效 token ,我想显示我的 MainViewViewController,否则我想显示 LoginViewController。

MainViewAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// To-do, show logged in view
} else {
// No, display the login page.
[self showLoginView];
}
return YES;
}
- (void)showLoginView
{
UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
LoginViewController* loginViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.window.rootViewController presentViewController:loginViewController animated:YES completion:NULL];
}

控制台错误:

Warning: Attempt to present <LoginViewController: 0xb492fd0> on <MainViewViewController: 0xb1bd820> whose view is not in the window hierarchy!

我不想使用 NavigationController。

最佳答案

我有同样的问题。基于对 this question 的回答,我在 presentViewController:animated:completion: 之前添加了 [self.window makeKeyAndVisible],并为我修复了它。

在你的情况下, showLoginView 变成

- (void)showLoginView
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
LoginViewController *loginViewController = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.window makeKeyAndVisible];
[self.window.rootViewController presentViewController:loginViewController animated:YES completion:NULL];
}

关于objective-c - AppDelegate、rootViewController 和 presentViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430179/

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