tableViewのCellにLebelを配置した後、Realmに保存したデータをLabelに表示させたいのですが、エラーは出ずに表示されないという状況です。
なにが原因かわからないので、教えていただければと思います。
swift
1import UIKit 2import RealmSwift 3 4class todo: UIViewController { 5 6 7 @IBOutlet weak var todoNameText: UITextField! 8 9 @IBOutlet weak var tableView: UITableView! 10 11 12 var toDoItems = try!Realm().objects(database.self) 13 14// var toDoItems:Results<database>?{ 15// do{ 16// let realm = try Realm() 17// return realm.objects(database.self) 18// }catch{ 19// print("エラー") 20// } 21// return nil 22// } 23 24 override func viewDidLoad() { 25 super.viewDidLoad() 26 27 self.tableView.dataSource = self as? UITableViewDataSource 28 self.tableView.delegate = self as? UITableViewDelegate 29 30 31 32 // Do any additional setup after loading the view, typically from a nib. 33 } 34 35 override func didReceiveMemoryWarning() { 36 super.didReceiveMemoryWarning() 37 // Dispose of any resources that can be recreated. 38 } 39 40 41 @IBAction func addToDo(_ sender: UIButton) { 42 43 if isValidateInputContents() == false{ 44 return 45 } 46 47 // ToDoデータを作成する処理 48 let toDo = database() 49 toDo.name = todoNameText.text! 50 51 // ToDoデータを永続化する処理 52 do{ 53 let realm = try Realm() 54 try realm.write{ 55 realm.add(toDo) 56 } 57 todoNameText.text = "" 58 }catch{ 59 print("失敗") 60 } 61 tableView.reloadData() 62 63 } 64 65 66 private func isValidateInputContents() -> Bool{ 67 // ToDo名のデータ入力 68 if let name = todoNameText.text{ 69 if name.characters.count == 0{ 70 return false 71 } 72 }else{ 73 return false 74 } 75 return true 76 } 77} 78 79extension ViewController: UITableViewDataSource{ 80 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 81 82 let toDoItems = try!Realm().objects(database.self) 83 84 return toDoItems.count 85 } 86 87 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 88 89 let toDoItems = try!Realm().objects(database.self) 90 91// let toDo = toDoItems[indexPath.row] 92// 93// let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! ToDoTableViewCell 94// 95// _ = toDoItems[indexPath.row] 96// 97// // Realmに登録したデータをラベルに値設定 98// 99// cell.nameLabel.text = toDo.name 100// 101// //print(toDo?.name ? ) 102// print(toDo.name) 103// 104// 105// return cell 106// } 107//} 108 let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "Cell") 109 110 // todoItemに代入されたデータをobject:NSArrayに代入 111 let object = toDoItems[indexPath.row] 112 113 //cellのtextLabelのtextにobjectのtitleプロパティを代入 114 cell.textLabel?.text = object.name 115 116 117 return cell 118} 119} 120 121
swift
1import UIKit 2 3class ToDoTableViewCell: UITableViewCell { 4 5 6 7 @IBOutlet weak var nameLabel: UILabel! 8 9 10 11 override func awakeFromNib() { 12 super.awakeFromNib() 13 // Initialization code 14 } 15 16 override func setSelected(_ selected: Bool, animated: Bool) { 17 super.setSelected(selected, animated: animated) 18 19 // Configure the view for the selected state 20 } 21 22}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/26 16:12