在不使用核心数据的情况下,在 segue 之后保存并记住 UIElement 值?

Posted

技术标签:

【中文标题】在不使用核心数据的情况下,在 segue 之后保存并记住 UIElement 值?【英文标题】:Save and remember UIElement values after segue without using core data? 【发布时间】:2014-02-20 09:52:41 【问题描述】:

我有一个迷你锻炼应用程序,根是 UITableViewController 和每个单元格 segues 到一个特定的 TVC,它有自己的特定设置,由 UISliders 和 UISegmented Controls 表示(如图所示)。

当然,当我导航回根控制器并再次返回特定单元格锻炼时,UIElements 会忘记之前输入的值。

但是,设置实体和属性似乎不是记住 UISettings 的最有效方式?我应该使用encoder decoder,写入文件吗?

必须有一种有效的方法来做到这一点。谢谢。

【问题讨论】:

【参考方案1】:

首先创建一个对象,可以任意命名,例如UIValues。 让这个对象有你想保存的属性:

@property (assign) CGFloat pushupsToday;

....

创建此对象并对其进行强引用。例如在您的appDelegate 或您的RootViewController

当您尝试推送新的 viewController 示例newViewController.uiValues = self.uiValues.时,让您的 viewController 共享此对象

如果您想将此值保存到光盘,则必须对值进行编码和解码。

【讨论】:

因为我有多个锻炼例程,你会说编码和解码比在 Core Data 中设置属性更好的方式来保存所有这些 UIValues? 我认为上下传递数据不是最好的方法 这取决于您要保存的数据量,如果您有很多,那么当然 coreData 是选择。但是无论如何,您都需要一个对象来保存值并将它们传递给 viewControllers 以更新 UI 状态。 @CescSergey 是的,我希望添加更多具有更具体 UISettings 的锻炼程序,核心数据是要走的路,谢谢。

以上是关于在不使用核心数据的情况下,在 segue 之后保存并记住 UIElement 值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 Segue 的情况下在单独的 UIViewController 中选择实例变量

仅在不切换 viewControllers 的情况下 Segue 动画

如何在不使用 segue 的情况下在视图控制器之间传递图像

在不使用其他项目的情况下添加实体框架核心迁移

如何在不重置其当前状态的情况下从一个视图控制器到自身进行转场?

在没有 UINavigationController 的情况下推送 Segue 动画