Hen*_*mak 7 objective-c uiviewcontroller ios state-restoration
在iOS 6中,Apple将状态恢复添加到UIViewController相关类中.这允许应用程序在终止时保存状态,并在用户恢复应用程序时将其恢复.
一切似乎都很好,但是我已经达到了一个不想融入模式的奇怪场景.
假设我们有两个视图控制器,ViewControllerOne并且ViewControllerTwo它们都存储了一些成功恢复的任意状态.现在让我们假设ViewControllerOne有一个delegate属性,那ViewControllerTwo就是委托(这是模态视图控制器的常见模式).谁负责恢复这种关系?它应该如何存储/恢复?
在我的特定情况下,不涉及故事板,恢复发生在代码中,通过 restorationClass属性.我的第一直觉是尝试恢复关系,同时在restorationClass中创建视图控制器,但由于restorationClass不知道其他现有的控制器,它无法完全恢复这种关系.
或者,如果是视图控制器声明delegate属性,那应该是恢复关系,那么现在如何在其他类中恢复的控制器实例呢?
简而言之,这似乎是一个记录不完整的情景,我希望有人能够对此有所了解.
我想说,任务落在委托视图控制器上,以将其自身设置为这样,就像您在推送其他视图控制器之前所做的那样。
关于如何实现这一目标,您有多种选择。
您可以将视图控制器的弱引用存储在全局可访问的位置(例如应用程序委托),并使用这些值来application:didDecodeRestorableStateWithCoder:设置委托 - 这就是此方法在 API 中的用途。
或者,您可以从顶部视图控制器发布“hereIAmThisIsMe”通知(带有self部分用户信息),委托侦听并将其自身设置为委托。
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |