質問編集履歴

2

2020/02/06 12:17

投稿

sakky_tom
sakky_tom

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,28 +1,16 @@
1
- 1. 質問の概要
2
-
3
- e.g.現在個人アプリを制作しており、育児状況を記録するため、その一画面をUITableViewで実装しております。具体的には、画面上部に表示された日付ごとにUITableViewCellに表示された内容をRealmを用いて記録、セルに表示したいです。
1
+ 現在個人アプリを制作しており、育児状況を記録するため、その一画面をUITableViewで実装しております。具体的には、画面上部に表示された日付ごとにUITableViewCellに表示された内容をRealmを用いて記録、セルに表示したいです。
4
2
 
5
3
  日付を切り替えるとセルの内容も書き換えられるような形にしたいです。
6
4
 
7
-
8
-
9
- 2. 前提となる情報
10
-
11
- e.g.- 参考にした記事URL: https://qiita.com/yanashi222/items/121b549852bedf391377- Realm公式サイトを参考
5
+ 参考にした記事URL: https://qiita.com/yanashi222/items/121b549852bedf391377- Realm公式サイトを参考
12
6
 
13
7
 
14
8
 
9
+ 表示された日付ごとにセルの内容を表示したい。具体的には、表示日付が変更されたら、それに伴ってセルの内容を書き換られるようにしたい。
15
10
 
11
+ 発生したエラーや意図しない挙動の説明
16
12
 
17
- 3. 期待する挙動
18
-
19
- e.g.- 表示された日付ごとにセルの内容を表示したい。具体的には、表示日付が変更されたら、それに伴ってセルの内容を書き換られるようにしたい。
20
-
21
-
22
-
23
- 4. 発生したエラーや意図しない挙動の説明
24
-
25
- e.g.- 前日ボタンやcellForRowAtに以下のコードを記載して試して見ましたが、日付が変更されても、セルの内容は変わりませんでした。
13
+ 前日ボタンやcellForRowAtに以下のコードを記載して試して見ましたが、日付が変更されても、セルの内容は変わりませんでした。
26
14
 
27
15
  ```swift
28
16
 
@@ -174,10 +162,6 @@
174
162
 
175
163
  表示している日付date(string)にprimary keyを指定して実装しましたがうまくいきません。
176
164
 
177
-
178
-
179
- 6. 求める回答(必須項目)
180
-
181
- e.g.- 日付に紐づいたUITableViewCellを表示をさせる場合、‘tableView(_: cellForRowAt)’または、前日ボタンに記載するという実装方針は合っているか、
165
+ 日付に紐づいたUITableViewCellを表示をさせる場合、‘tableView(_: cellForRowAt)’または、前日ボタンに記載するという実装方針は合っているか、
182
166
 
183
167
  どちらもも違っているのであれば、どのような実装方針がよいのかアドバイス頂きたいです。

1

2020/02/06 12:17

投稿

sakky_tom
sakky_tom

スコア7

test CHANGED
File without changes
test CHANGED
@@ -28,47 +28,139 @@
28
28
 
29
29
 
30
30
 
31
+ こちらです!
32
+
33
+ //セル数宣言
34
+
35
+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
36
+
37
+
38
+
39
+ let realm = try! Realm()
40
+
41
+ return todoItems.count
42
+
43
+ }
44
+
45
+
46
+
47
+ //セル表示
48
+
49
+ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
50
+
51
+ let cell = tableView.dequeueReusableCell(withIdentifier: "RecordCell", for: indexPath) as! TableViewCell
52
+
53
+
54
+
55
+ let realm = try! Realm()
56
+
57
+ let object = todoItems[indexPath.row]
58
+
59
+ cell.bindData(text: object.title, label: object.nowTime, image: object.buttonImage!)
60
+
31
- let record = Record(
61
+ let record = Record()
32
62
 
33
63
 
34
64
 
35
- let realm = try! Realm()
65
+ var result = realm.objects(Record.self)
36
66
 
37
67
 
38
68
 
39
- var result = realm.objects(Record.self)
69
+ result = result.filter("date = '(labelToday.title)'")
40
70
 
41
71
 
42
72
 
43
- result = result.filter("date = '(labelToday.title)'")
73
+ for rd in result {
44
74
 
45
75
 
46
76
 
47
- for rd in result {
77
+ if rd.date == labelToday.title {
48
78
 
49
79
 
50
80
 
51
- if rd.date == labelToday.title {
81
+ record.title = rd.title
52
82
 
53
83
 
54
84
 
55
- record.title = rd.title
85
+ record.nowTime = rd.nowTime
56
86
 
57
87
 
58
88
 
59
- record.nowTime = rd.nowTime
89
+ record.buttonImage = rd.buttonImage
60
90
 
61
91
 
62
92
 
93
+ }
94
+
95
+ }
96
+
63
- record.buttonImage = rd.buttonImage
97
+ return cell
98
+
99
+ }
100
+
101
+
64
102
 
65
103
 
66
104
 
105
+ func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
106
+
107
+ return true
108
+
67
- }
109
+ }
68
110
 
69
111
 
70
112
 
113
+
114
+
115
+ func tableView(_ tableView: UITableView,commit editingStyle: UITableViewCell.EditingStyle,forRowAt indexPath: IndexPath) {
116
+
117
+ if editingStyle == .delete{
118
+
119
+ if let object = todoItems?[indexPath.row] {
120
+
121
+ tableView.reloadData()
122
+
123
+ let realm = try! Realm()
124
+
125
+ try! realm.write{
126
+
127
+ realm.delete(object)
128
+
71
- })
129
+ }
130
+
131
+ tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic)
132
+
133
+ }
134
+
135
+ }
136
+
137
+ }
138
+
139
+
140
+
141
+ func scrollViewDidScroll(_ scrollView: UIScrollView) {
142
+
143
+ return
144
+
145
+ }
146
+
147
+
148
+
149
+
150
+
151
+ func deleteTodo(Index: Int){
152
+
153
+ let realm = try! Realm()
154
+
155
+ try! realm.write{
156
+
157
+ realm.delete(todoItems[Index])
158
+
159
+ }
160
+
161
+
162
+
163
+ }
72
164
 
73
165
 
74
166