我有UIViewController,其中包含之前预先添加的一些信息,并且在这个UIViewController中只显示UITextFields中的信息,以便用户可以随时更新它们。
用户写入新值后,我将值保存在Core Data中,特别是viewWillDisappear
。那工作得非常好。
在我添加imagePickerController
之前,用户可以在以后编辑照片。调用imagePickerController
时,会触发viewWillDisappear
将数据保存到CoreData。
当用户关闭此UIViewController并返回主UITableViewController时,我需要保存信息。
我没有使用UIButton手动保存数据,它就像本机iOS Notes应用程序一样,它会在您关闭注释编辑器视图时自动保存数据。
我试图将数据保存在unwind segue中,但这也无效。
我还需要在这个特定的UIViewController中保存新信息。所以,请告诉我是否有另一种ViewController生命周期的方法可以保存到CoreData。
答案 0 :(得分:0)
如果在显示图像选择器时保存数据,为什么会出现问题?由于您自动保存数据,因此它似乎完全合法。
如果不是这种情况,那么您不希望自动执行此操作,但您希望明确地执行此操作。这意味着您需要一个保存按钮,或者您需要覆盖后退按钮,以便在用户返回时收到通知。这仍会产生其他问题,例如,如果用户滑动以解除视图控制器,会发生什么。
如果有任何自动保存的话,我会建议您在用户更改文本字段时保存(或解除其中一个)。对于用户在编辑时杀死应用程序的情况,这也是防弹的。
您需要确保的是,如果已存在新实体,则不会创建新实体。这应该很简单;将实体保存在视图控制器中的属性上,如果为null,则创建一个“保存”,否则修改当前的一个。通过公开公开属性,您还可以通过在导航到视图控制器之前将值设置为视图控制器,从而开箱即用的编辑功能(例如,从表视图中选择它时)。