gpt4 book ai didi

ios - 登录 ios 的 UINavigationController 流程

转载 作者:行者123 更新时间:2023-12-01 17:54:03 25 4
gpt4 key购买 nike

已解决:

用户登录/注册后,使用以下代码转换到主 Storyboard...

 UIWindow* window = [[UIApplication sharedApplication] keyWindow];

window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];

我有以下 UINavigationController 流程​​来处理登录...在 tabbarcontroller 转到作为 viewcontroller 根的 uinavigationcontroller 之后的顶部 segue。

enter image description here

当用户已经登录时,会执行“this segue works”,这样用户就不必在登录屏幕上登录。这完美无缺。我遇到的问题是当用户必须登录时......从登录/注册屏幕到登录屏幕的转场工作完美,但是当我从登录屏幕转到标签栏时,会发生以下情况:

enter image description here

这真的不应该发生,因为我的 viewcontroller.m 中有以下代码(调用到这里)
- (void)viewDidLoad {
...
self.navigationItem.title = @"Messages";
self.navigationItem.hidesBackButton = YES;

NSLog(@"gotten to here");
...
}

有谁知道为什么会这样?

最佳答案

我喜欢将我的登录流程与正常的应用流程分开。这意味着我不会将登录屏幕中的 segue 链接到应用程序,但我会在我的 AppDelegate 中处理它:

if ([MyUserHandler sharedHelper].isAuthenticated) {
[self presentMainInterface];
} else {
[self presentWelcomeInterface];
}

第一种方法这样做的地方:
- (void)presentMainInterface
{
self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
}

另一个显示登录屏幕:
- (void)presentWelcomeInterface
{
UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"loginScreen"];

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
self.window.rootViewController = navigation;
}

这样,只有在用户未通过身份验证时才会加载登录屏幕。

关于ios - 登录 ios 的 UINavigationController 流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21594765/

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