Ios 初次入职后如何过渡到主应用程序流程

Ios 初次入职后如何过渡到主应用程序流程,ios,Ios,目前,我在故事板中放置了两个流:载入/登录流(当前在故事板设置中设置为初始视图控制器)和主应用程序流(例如,登录后的核心应用程序体验) 从Onboard到主应用程序流的转换在UI中成功进行,但我认为我的方式不太正确。我遇到的一个问题是无法将视图状态恢复到主应用程序流 从入职流程转换到主应用程序流程时,我使用presentViewController转换到新的视图控制器,然后使用removeFromParentViewController从视图层次结构中删除PresentView控制器的父导航控制

目前,我在故事板中放置了两个流:载入/登录流(当前在故事板设置中设置为初始视图控制器)和主应用程序流(例如,登录后的核心应用程序体验)

从Onboard到主应用程序流的转换在UI中成功进行,但我认为我的方式不太正确。我遇到的一个问题是无法将视图状态恢复到主应用程序流

从入职流程转换到主应用程序流程时,我使用
presentViewController
转换到新的视图控制器,然后使用
removeFromParentViewController
从视图层次结构中删除PresentView控制器的父导航控制器。我的想法是,主应用程序流应该有自己的视图层次结构,其根应该是新显示的视图控制器中的第一个视图

但是,以这种方式执行操作会破坏视图恢复代码。我似乎无法将视图层次结构正确地“重置”到主导航控制器。视图状态恢复以前在我没有从视图层次结构中删除Onboard navigation controller(如下面的代码所示)时是有效的,但现在它不起作用了——状态总是恢复到Onboard流的开头,即
-(void)decodeRestorableStateWithCoder:(NSCoder*)编码器
方法从未在主应用程序流控制器上调用

下面是显示主应用程序流控制器的入职流控制器的相关代码

//来自入职流程的演示视图控制器
@TLOnboardingStep2ViewController的实现
-(无效)presentMainViewController{
UIStoryboard*board=[UIStoryboard情节提要,名称:@“Main”bundle:nil];
//主应用程序流的根视图控制器
ECSlidingViewController*slidingVC=[电路板实例化设备控制器的标识符:@“slidingViewController”];
[自我呈现视图控制器:滑动VC动画:是完成:^{
[[UIApplication sharedApplication]。委托窗口].rootViewController=slidingVC;
[self.navigationController从父视图控制器移除];
}];
}
@结束

我做错了什么?谢谢。

处理此问题的更好方法似乎是将主应用程序流设置为根视图控制器,并在需要时作为模式视图控制器从主视图控制器弹出到登录流中。这就是我现在正在做的,它似乎工作得更好,并且保持层次结构更干净。

是的,这是一个更好的方法。在显示登录模式时,可以将“动画”设置为“否”,以便在成功登录之前,最初不会看到根视图控制器。然后,您可以将动画设置为“是”来消除它。@Jesse一个带有一些代码的示例将非常有用-谢谢