我有一个核心数据问题,我无法在表格视图中更新已保存的数据,但我能够将保存的数据传递到目标视图控制器的文本字段,但无法更新它并将其传递给以前的视图控制器。我能够在文本字段中进行编辑,但无法更新先前保存数据的上一个表视图控制器中的内容。
func Plus(sender: AnyObject) {
if store == nil
{
//get the description of the entity
let storeDescription = NSEntityDescription.entityForName("Store",inManagedObjectContext: appdelegate.managedObjectContext)
//we create managed object to be inserted to core data
let store = EventsandnotesStore(entity : storeDescription!,insertIntoManagedObjectContext:appdelegate.managedObjectContext)
store.sName = name.text
store.sDescription = desc.text
let img = UIImage(named: "image.jpg")
let imgData = UIImageJPEGRepresentation(img!,1)
store.sImage = imgData
do {
try appdelegate.managedObjectContext.save()
self.navigationController?.popViewControllerAnimated(true)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}
答案 0 :(得分:0)
你可以做两件事之一
实现委托模式以将更新的信息传递回原始视图控制器。然后,您可以手动更新tableView的数据源。
或者您可以使用NSFetchedResultsController作为tableView的dataSource并实现其delegate函数。这使您可以通知tableView核心数据已更新。
我推荐后者,它可以让你的设置更加轻松,但让生活更轻松。