试图在家里迅速保存数据

Posted

技术标签:

【中文标题】试图在家里迅速保存数据【英文标题】:Trying to save data coming a segue in swift on the home 【发布时间】:2019-12-28 15:23:22 【问题描述】:

设置 - 我有一个视图控制器使用协议和 segue 将数据传递给另一个视图控制器。序列工作正常,字符串正在传递回(主)屏幕。 数据字段一开始是空的,然后从另一个视图控制器填充。

问题 - 当我关闭应用程序并返回时,我似乎无法将数据保存在主视图控制器上。在其他视图控制器上,我正在使用 UserDefaults 并且它正在工作(没有 segues)。

预期行为:打开应用程序时显示保存的数据(第二次)

问题 - 是否可以在家中保存和显示来自 segue 的数据?

仅供参考 - 我是快速编程的新手。

【问题讨论】:

你能显示一些代码你到目前为止做了什么,什么不工作 在 viewDidLoad 方法中检查 Home ViewController 中 UserDefaults 中的特定键是否存在值。 如果返回时数据显示在VCA中,返回后可以保存在VCA(home)中。或者,正如解释的那样,可以在 VCB 中为 segue 做准备,保存到 userDefaults 或您选择的任何持久存储。 【参考方案1】:

我不完全理解你的问题,但会尽量回答,就像我从你的问题中理解的一样:

因此,您有一个 ViewControllerA,它执行 segue 以显示 ViewControllerB,并且在 ViewControllerA 的覆盖 prepareForSegue 方法中,您设置了 ViewControllerB 的委托。

现在,您将一些数据保存到 ViewControllerB 中的 UserDefaults 并在重新启动应用程序时,您希望 ViewControllerA 从 UserDefaults 加载数据。

我的建议是检查数据是否存在于 ViewControllerA 的 viewWillAppear 方法中的 UserDefaults 中(如果存在,则加载它并设置 UI 标签的文本,以及此时的 textFields)。如果 ViewControllerB 也需要这些数据,您可以在 ViewControllerA 的重写 prepareForSegue 方法中将其传递给 ViewControllerB。

【讨论】:

非常感谢。我做了检查,数据确实存在。我在哪里“加载并设置文本”?在 viewWillAppear 函数中?该代码是什么样的?再次抱歉 - 我只是在学习如何使用 Swift 编写代码。 您需要为您的 UILabel 创建一个 IBOutlet,然后在您的 viewWillAppear 方法中使用 label.text = "Hello, world" 设置文本。示例代码见***.com/questions/25043323/…。

以上是关于试图在家里迅速保存数据的主要内容,如果未能解决你的问题,请参考以下文章

试图弄清楚为啥我的表单的数据网格只保存前 35 行

错误:创建或保存数据时试图获取非对象的属性

Python代码试图将excel数据保存到数据库中 - 错误转义特殊字符

试图在 STUDENT 模型(外键)中保存 POST 数据 CLASS NAME?

如何保存从Kinect 2.0收集的Body数据并将其保存在JSON文件中?

discuz 数据库文件保存在哪个文件里?