到目前为止,谷歌搜索但没有运气。在我开始使用Storyboard之前,我有几个使用多个viewcontrollers的应用程序。当回到某个viewController(通过解除子视图控制器)时,我会发现原始(或根)视图控制器完好无损。 现在我正在尝试故事板,似乎我的rootViewController不时被重新加载,丢失所有数据并从viewDidLoad重新开始。我认为这发生在从一个视图控制器到另一个视图控制器之间例如,从rootViewController,我提出另一个视图控制器。当我解雇那些其他视图控制器以返回到rootViewController时,它看起来重新加载并且是全新的。它有时只发生在操作系统发出内存警告时。我注意到我的rootViewController中的所有变量都被重置,并且viewDidLoad再次被执行(使用NSLog确认)。
这是正常的吗?
从我见过的所有教程中,他们说如果使用Storyboard将委托方法“applicationDidFinishLaunchingWithOPtions”保持完整(而在我的旧应用程序中,我会在这里做一些viewcontroller alloc。 我试过以下,但没有成功:
// in didFinishLaunchingWithOptions of delegate.m
[self.window.rootViewController retain]
没用。我的主viewController仍然不时被释放/重新加载
// in my viewDidLoad of viewcontroller.m
[self retain];
无法正常工作
我是否必须在我的委托文件中声明和分配viewController,然后将其分配给rootViewController?我尝试了类似的东西,但是坠毁了,也许没有做对。
感谢?