我有一个包含其他视图的UIScrollView对象。用户可以在运行时创建UIViewController,并将它们放在UIScrollView上。反过来,他们也存储了不同的观点。
所以我想我可以使用NSCoding在NSUserDefaults中存储用户界面。但也许另一种方式将是最美丽的,例如,如果我将拥有这些视图的数据模型,如果我需要它们,我将使用数据模型重新创建它,而不是将我的所有对象存储在存储中的NSCoding。
答案 0 :(得分:3)
我不会存储任何用户界面元素本身。我也不会存储整个模型对象。该 最好的方法是存储恢复(数据)模型对象所需的最小值。
您可能需要创建一个“存储数据树”,以便每个视图控制器都可以恢复它自己的子节点并将它们传递给存储的数据,以便它们可以执行相同的操作。
然后,当需要恢复时,您只需要使用存储的值重建数据模型并将它们连接到用户界面。