我有一个锻炼应用程序和一个模型,其中包含所有练习的所有数据。现在我使用单例从TableView的每个子VC访问模型。我遇到问题,我想删除单身人士。
现在我如何在整个应用程序中更新模型并从任何地方在应用程序中访问它?单身人士很容易。我想我需要将模型从Child VC传递回Parent,所以当选择下一个练习时,Parent可以将它传递给下一个Child VC。
答案 0 :(得分:0)
我没有使用过国家保护和恢复,所以我不知道它与你的模型是一个单独的问题(如果你详细说明这个问题,我可能有一些想法可以帮助),但我发现在数据模型很简单的应用程序上,像你一样已经表明,单身通常更容易。也就是说,如果它不是一个选项,你会想pass the model object between controllers。基本上在每个控制器上放置一个属性,然后在segue中将该对象传递给目标控制器。
当你从导航堆栈弹出控制器时,你也想要更新视图,以防任何数据发生变化。如果您正在使用故事板并且拥有少量场景(故事板中的各个“屏幕”),则很容易连接Unwind segue,它会调用父控制器上的方法通知孩子是从弹出堆栈 - 这是你从孩子那里抓取对象,将其存储在父控制器上,并刷新其视图。
iOS应用中有several ways to persist data。我最喜欢的是Core Data和序列化。如果您的模型非常简单(一个或两个对象实例,每个对象只有几个属性),序列化非常简单 - 使用NSCoding对您的对象进行编码/解码,并在您的应用程序数据目录中使用save that data to a file。如果您的模型更复杂(例如在对象或大量对象实例之间建立关系),Core Data是一个很好的方法。它管理内存中的对象“图形”,并为您处理将其保存到磁盘;如果您将来需要改进模型,它甚至会处理升级您的持久存储。它非常强大,但有一点学习曲线。