gpt4 book ai didi

ios - 初始入职后如何过渡到主要应用程序流程

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:34 24 4
gpt4 key购买 nike

目前我在 Storyboard中放置了两个流程:入职/登录流程(目前在 Storyboard设置中设置为初始 View Controller )和主要应用程序流程(例如,登录后的核心应用程序体验)。

从入门到主应用程序流程的过渡在 UI 中成功发生,但我认为我的做法不太正确。我遇到的一个问题是无法将 View 状态恢复到主应用程序流程。

当从入门流程过渡到主应用程序流程时,我使用 presentViewController 过渡到新的 View Controller ,然后我从中删除呈现 View Controller 的父导航 Controller 使用 removeFromParentViewController 查看层次结构。我的想法是,主应用程序流程确实应该有自己的 View 层次结构,其根应该是新呈现的 View Controller 中的第一个 View 。

但是,以这种方式做事会破坏 View 恢复代码。似乎我在某种程度上未能正确地将 View 层次结构“重置”到主导航 Controller 。 View 状态恢复在我没有从 View 层次结构中删除入职导航 Controller 之前是有效的(如下面的代码所示),但现在它不起作用——状态总是恢复到入职流程的开始,- (void)decodeRestorableStateWithCoder:(NSCoder *)coder 方法永远不会在主应用程序流 Controller 上调用。

下面是介绍主应用程序流程 Controller 的入职流程 Controller 的相关代码。

// The presenting view controller from the onboarding flow
@implementation TLOnboardingStep2ViewController
-(void)presentMainViewController {
UIStoryboard *board = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

// The root view controller of the main app flow
ECSlidingViewController *slidingVC = [board instantiateViewControllerWithIdentifier:@"slidingViewController"];
[self presentViewController:slidingVC animated:YES completion:^{
[[UIApplication sharedApplication].delegate window].rootViewController = slidingVC;
[self.navigationController removeFromParentViewController];
}];
}
@end

我在这里做错了什么?谢谢。

最佳答案

处理这个问题的更好方法似乎是让主应用程序流成为 Root View Controller ,并在需要时从主视图 Controller 作为模态视图 Controller 弹出到登录流中。这就是我现在正在做的事情,它似乎工作得更好,并且使层次结构更加清晰。

关于ios - 初始入职后如何过渡到主要应用程序流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941139/

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