TableViewCellにCoredataに保存させた項目を取り出して表示させたいです。
todoリストのような形で、TableViewから+ボタンを押して詳細入力画面にうつり、その詳細内容項目をCoreDataに保存し、TableView画面に戻り、その詳細の項目の一つをタイトルとしてリストに表示させたいです。
エラーは出ないですが、リストに項目が追加されません。
CoreDataにしっかり保存はできているのですが、データの要求がしっかりできていないのか、もしくはTableVIewCellに表示させるコードが間違っているのかが分かりません。どなたか、お願いいたします。
swift3.0 class ViewController:UIViewController,UITextFieldDelegate,UITableViewDelegate{ var main:Main! var context:NSManagedObjectContext! var coreDataStack:CoreDataStack! // weak var editingTextField:UITextField? var numberList:[String] = [] // 管理オブジェクトコンテキストの保存 func saveContext () throws { if context.hasChanges { do { // コンテキストを保存 try context.save() } catch let error as NSError { print("\(error)") throw error } } } //最初からあるメソッド override func viewDidLoad() { super.viewDidLoad() // do { //部活動登録用の管理オブジェクトコンテキストを取得する。 let applicationDelegate = UIApplication.shared.delegate as! AppDelegate context = applicationDelegate.managedObjectContext do { //numberオブジェクトをフェッチする。 let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Main") fetchRequest.predicate = NSPredicate(format:"number = %@") fetchRequest.predicate = NSPredicate(format:"tema = %@") let mainList = try context.fetch(fetchRequest) as! [Main] //dismiss(animated: true, completion: nil) numberList = [] for main in mainList{ numberList.append(main.number!) } } catch { print(error) } print("回数\(numberList.count)") } private func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell { // let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "MainCell" let cell = tableView.dequeueReusableCell(withIdentifier: "MainCell") as! TableViewCell cell.numberLabel?.text = main.number //cell.numberLabel?.text = numberList[indexPath.row] return cell } private func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return numberList.count } }
回答1件
あなたの回答
tips
プレビュー