【发布时间】:2013-12-18 18:15:54
【问题描述】:
在 iOS 6 中,Apple 为 UIViewController 和相关类添加了状态恢复功能。这允许应用程序在终止时保存状态,并在用户恢复应用程序时恢复状态。
一切似乎都很好,但是我遇到了一个不适合这种模式的奇怪场景。
假设我们有两个视图控制器,ViewControllerOne 和ViewControllerTwo,它们都存储了一些成功恢复的任意状态。现在让我们假设ViewControllerOne 有一个delegate 属性,而ViewControllerTwo 就是那个委托(这是模态视图控制器的常见模式)。谁负责恢复这种关系?它应该如何存储/恢复?
在我的特殊情况下,不涉及情节提要,恢复发生在代码中,通过 restorationClass 属性。我的第一个直觉是在 restoreClass 中创建视图控制器时尝试恢复关系,但是由于 restorationClass 不知道其他现有控制器,它无法完全恢复这种关系。
或者,如果是声明delegate属性的视图控制器,应该恢复关系,那么现在在其他类中恢复的控制器实例如何?
简而言之,这似乎是一个记录不充分的场景,我希望有人能对此有所了解。
【问题讨论】:
标签: ios objective-c uiviewcontroller state-restoration