目前我在故事板中有两个流程:入门/登录流程(当前设置为故事板设置中的初始视图控制器)和主要应用程序流程(例如,您登录后的核心应用程序体验)。
从入门到主应用流程的转换在用户界面中成功发生,但我不认为我这样做的方式是正确的。我遇到的一个问题是无法将视图状态恢复到主应用程序流。
当从入门流程转换到主应用程序流程时,我正在使用presentViewController
转换到新的视图控制器,然后我将使用它的视图层次结构移除呈现视图控制器的父导航控制器removeFromParentViewController
。我的想法是主应用程序流应该真正拥有自己的视图层次结构,其根应该是新呈现的视图控制器中的第一个视图。
但是,以这种方式处理会破坏视图恢复代码。我似乎无法正确地将视图层次“重置”到主导航控制器。在我没有从视图层次结构中移除入门导航控制器之前,查看状态恢复正在工作(如下面的代码所示),但现在它无法正常工作 - 状态总是恢复到入门流程的开头,{{永远不会在主app流控制器上调用方法。
以下是来自主流app控制器的入门流量控制器的相关代码。
- (void)decodeRestorableStateWithCoder:(NSCoder *)coder
我在这里做错了什么?感谢。
答案 0 :(得分:1)
似乎更好的方法是使主应用程序流为根视图控制器,并在需要时从主视图控制器弹出登录流作为模态视图控制器。这就是我现在正在做的事情,似乎工作得更好,并使层次结构更加清洁。