Swift
1import Foundation 2import RealmSwift 3 4class Todo: Object{ 5 6 @objc dynamic var title = "" 7 @objc dynamic var title2 = "" 8 9}
Swift
1import UIKit 2import RealmSwift 3 4class ViewController: UIViewController, UITableViewDataSource { 5 6 @IBOutlet weak var table: UITableView! 7 @IBOutlet weak var textBox: UITextView! 8 9 10 var todoItems: Results<Todo>! 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 15 table.dataSource = self 16 17 let realm = try! Realm() 18 todoItems = realm.objects(Todo.self) 19 20 table.reloadData() 21 22 } 23 24 override func viewWillAppear(_ animated: Bool) { 25 super.viewWillAppear(animated) 26 table.reloadData() 27 } 28 29 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 30 return todoItems.count 31 } 32 33 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 34 let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 35 let object = todoItems[indexPath.row] 36 cell.textLabel?.text = object.title 37 cell.textLabel?.text = object.title2 38 39 40 return cell 41 } 42 43 44 45 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { 46 if editingStyle == .delete{ 47 48 deleteTodo(at: indexPath.row) 49 table.reloadData() 50 } 51 } 52 func deleteTodo(at index: Int){ 53 54 let realm = try! Realm() 55 try! realm.write{ 56 realm.delete(todoItems[index]) 57 } 58 } 59 60 61 @IBAction func addButton(_ sender: Any) { 62 let realm = try! Realm() 63 let todo = Todo() 64 todo.title = textBox.text! 65 try! realm.write{ 66 realm.add(todo) 67 } 68 } 69 70 @IBAction func addButton2(_ sender: Any) { 71 let realm = try! Realm() 72 let todo = Todo() 73 todo.title2 = textBox.text! 74 try! realm.write{ 75 realm.add(todo) 76 } 77 } 78 }
Swift
1import UIKit 2 3class ToDoTableViewCell: UITableViewCell { 4 5 @IBOutlet weak var nameLabel: UILabel! 6 @IBOutlet weak var nameLabel2: UILabel! 7 8 9 10 override func awakeFromNib() { 11 super.awakeFromNib() 12 // Initialization code 13 } 14 15 override func setSelected(_ selected: Bool, animated: Bool) { 16 super.setSelected(selected, animated: animated) 17 18 // Configure the view for the selected state 19 } 20 21}
https://qiita.com/Shiro_Head/items/285ada98da1858befb6f
こちらの記事を参考に、Realmを利用したToDoアプリを作成しました。
それを参考に、1つのtextviewから、LEFT、とRIFHTの2つのボタンで、表示するラベルを操作したいと思い上記のようなコードを書いたのですが、上手く表示されません。
textviewに”バナナ”等の黄色いものを入力してLEFTのボタンを押すと、黄色いラベル上に表示され、”りんご”のように赤いものを入力してRIGHTのボタンを押すと、赤いラベル上に表示されるようにしたいと思っています。
(tableviewcell上に横いっぱいに広げ、背景色を変えた、黄色と赤のラベルを2つ配置しています)
ばなな → LEFT
りんご → RIGHT
ポスト → RIGHT
の順に入力、ボタンタップをした結果上記のような表示になってしまいます。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let object = todoItems[indexPath.row]
cell.textLabel?.text = object.title
cell.textLabel?.text = object.title2
return cell }
この部分が間違っているのかと思うのですが、解決方法がわかりませんでした。
どのようにすれば解決できるか、ご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー