2016-08-10 15 views
1

保存したデータをテーブルビューで更新できないが、保存したデータを宛先ビューコントローラのテキストフィールドに渡すことはできますが、以前のView Controllerに渡します。テキストフィールドで編集することはできますが、データが以前に保存されていた以前のテーブルビューコントローラのコンテンツを更新することはできません。コアデータ内に保存されたデータを更新できません

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

表示しているコアデータの保存は、ビューコントローラでデータを表示するコードではありません。そのコードを表示する必要があります。 – Daniel

+0

編集したテキストフィールドのコンテンツをコアデータに更新する方法はわかりません。以下では、 –

+0

に次のビューコントローラにデータを渡すためのコードを与えました。 {segue:UIStoryboardSegue、送信者:AnyObject?){ if segue.identifier == "show" { をv = segue.destinationViewControllerに設定します。 ViewController let indexpath = self.tableView.indexPathForSelectedRow! let row = indexpath.row v.store = stores [行] } コアデータの内容を更新するコードを教えてください。私は迅速かつアプリ開発に新しいです。 –

答えて

0

あなたが戻ってあなたの元のビューコントローラに更新情報を渡すために、デリゲートパターンを実装する二つのこと

のいずれかを行うことができます。次に、tableViewのデータソースを手動で更新することができます。

またはNSFetchedResultsControllerをtableViewのdataSourceとして使用し、そのdelegate機能を実装することができます。これにより、コアデータが更新されたことをテーブルビューに通知することができます。

私は後者をお勧めします。これはセットアップにはもう少し時間がかかりますが、人生はずっと楽になります。

+0

私は最終的にデータを更新しました、私は代理人とうんざりしました。 –

関連する問題