何时更新 CoreData 持久容器值
When to update the CoreData persistent container values
我的 UIViewController 包含一些之前预先添加的信息,在此 UIViewController 中仅在 UITextFields 中显示信息,以便用户可以随时更新它们。
用户写入新值后,我将这些值保存在 Core Data 中,具体来说是 viewWillDisappear
。那工作得很好。
直到我添加了 imagePickerController
以便用户以后可以编辑照片。当 imagePickerController
被调用时,它会触发 viewWillDisappear
将数据保存到 CoreData。
我需要在用户关闭此 UIViewController 并返回主 UITableViewController 时保存信息。
我没有使用 UIButton 手动保存数据,它就像本机 iOS Notes 应用程序一样,当您关闭笔记编辑器视图时它会自动保存数据。
我曾尝试将数据保存在 unwind segue 中,但这也没有用。
我还需要在此特定 UI 中保存新信息ViewController。所以请让我知道是否有另一种方法可以将 ViewController 生命周期保存到 CoreData。
为什么在显示图像选择器时保存数据会出现问题?这似乎是完全合法的,因为您会自动保存数据。
如果不是这种情况,那么您不想自动执行此操作,而是想明确执行。这意味着您需要一个保存按钮,或者您需要覆盖后退按钮,以便在用户返回时通知您。这仍然会产生其他问题,例如如果用户向后滑动以关闭视图控制器会发生什么。
如果有任何关于自动保存的内容,我建议您在用户更改文本字段(或关闭文本字段)时进行保存。这对于用户在编辑时终止应用程序的情况也是防弹的。
您需要确保的是,如果一个新实体已经存在,则不会创建新实体。这应该很简单;将实体保存在视图控制器中的 属性 上,如果它为 null,则创建一个 "on save" 否则修改当前的实体。通过公开公开 属性,您还可以通过在导航到视图控制器之前将值设置为视图控制器(例如,从 table 视图中选择它时)来开箱即用的编辑功能。
我的 UIViewController 包含一些之前预先添加的信息,在此 UIViewController 中仅在 UITextFields 中显示信息,以便用户可以随时更新它们。
用户写入新值后,我将这些值保存在 Core Data 中,具体来说是 viewWillDisappear
。那工作得很好。
直到我添加了 imagePickerController
以便用户以后可以编辑照片。当 imagePickerController
被调用时,它会触发 viewWillDisappear
将数据保存到 CoreData。
我需要在用户关闭此 UIViewController 并返回主 UITableViewController 时保存信息。
我没有使用 UIButton 手动保存数据,它就像本机 iOS Notes 应用程序一样,当您关闭笔记编辑器视图时它会自动保存数据。
我曾尝试将数据保存在 unwind segue 中,但这也没有用。
我还需要在此特定 UI 中保存新信息ViewController。所以请让我知道是否有另一种方法可以将 ViewController 生命周期保存到 CoreData。
为什么在显示图像选择器时保存数据会出现问题?这似乎是完全合法的,因为您会自动保存数据。
如果不是这种情况,那么您不想自动执行此操作,而是想明确执行。这意味着您需要一个保存按钮,或者您需要覆盖后退按钮,以便在用户返回时通知您。这仍然会产生其他问题,例如如果用户向后滑动以关闭视图控制器会发生什么。
如果有任何关于自动保存的内容,我建议您在用户更改文本字段(或关闭文本字段)时进行保存。这对于用户在编辑时终止应用程序的情况也是防弹的。
您需要确保的是,如果一个新实体已经存在,则不会创建新实体。这应该很简单;将实体保存在视图控制器中的 属性 上,如果它为 null,则创建一个 "on save" 否则修改当前的实体。通过公开公开 属性,您还可以通过在导航到视图控制器之前将值设置为视图控制器(例如,从 table 视图中选择它时)来开箱即用的编辑功能。