Невозможно обновить сохраненные данные в основных данных

У меня возникла проблема с основными данными, когда я не могу обновить сохраненные данные в табличном представлении, но я могу передать сохраненные данные в текстовые поля целевого контроллера представления, но не могу обновить его и передать предыдущему контроллеру представления. Я могу редактировать текстовые поля, но не могу обновить содержимое в предыдущем контроллере табличного представления, в котором данные были сохранены ранее.

    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)")
            }
        }

person Guru Teja    schedule 10.08.2016    source источник
comment
Сохранение основных данных, которое вы показываете, не является кодом, отвечающим за отображение данных в вашем контроллере представления. Вы должны показать этот код.   -  person Daniel Zhang    schedule 10.08.2016
comment
Я не знаю, как обновить содержимое отредактированного текстового поля в основные данные. Ниже я привел   -  person Guru Teja    schedule 11.08.2016
comment
Я дал код для передачи данных следующему контроллеру представления. переопределить функцию prepareForSegue (переход: UIStoryboardSegue, отправитель: AnyObject?) { if segue.identifier == show { let v = segue.destinationViewController as! ViewController пусть indexpath = self.tableView.indexPathForSelectedRow! let row = indexpath.row v.store = store[row] } Подскажите, пожалуйста, код для обновления содержимого в основных данных. Я новичок в быстрой разработке и разработке приложений.   -  person Guru Teja    schedule 11.08.2016


Ответы (1)


Вы можете сделать одну из двух вещей

Реализуйте шаблон делегата, чтобы передать обновленную информацию обратно в исходный контроллер представления. Затем вы можете обновить источник данных для вашего tableView вручную.

Или вы можете использовать NSFetchedResultsController в качестве источника данных для вашего tableView и реализовать его делегировать функции. Это позволяет вам уведомить ваш tableView об обновлении основных данных.

Я рекомендую последнее, это потребует немного больше усилий для настройки, но значительно упростит жизнь.

person Olivier Wilkinson    schedule 10.08.2016
comment
Наконец-то я обновил данные, я напортачил с делегатами. - person Guru Teja; 29.09.2016