質問編集履歴

6

2019/11/17 11:30

投稿

vlb
vlb

スコア109

test CHANGED
File without changes
test CHANGED
@@ -246,6 +246,10 @@
246
246
 
247
247
  実際のアプリに近づけた構成
248
248
 
249
+ __detail__で値を増やし,__detail__から__Second__へ画面遷移をした際に__Firebase__への書き込みと書き出しを行う.
250
+
251
+ その際に問題が発生する.
252
+
249
253
  ![イメージ説明](0463f40ce0249822503ccf9a4278d33b.png)
250
254
 
251
255
 

5

a

2019/11/17 11:30

投稿

vlb
vlb

スコア109

test CHANGED
File without changes
test CHANGED
@@ -246,7 +246,7 @@
246
246
 
247
247
  実際のアプリに近づけた構成
248
248
 
249
- ![イメージ説明](8c0a5ccdb7e8bea6fcfd7965b02f80e9.png)
249
+ ![イメージ説明](0463f40ce0249822503ccf9a4278d33b.png)
250
250
 
251
251
 
252
252
 

4

a

2019/11/17 11:27

投稿

vlb
vlb

スコア109

test CHANGED
File without changes
test CHANGED
@@ -128,7 +128,7 @@
128
128
 
129
129
  ### コード2
130
130
 
131
- __TableViewController.swift__
131
+ __SecondViewController.swift__
132
132
 
133
133
  ```Swift
134
134
 

3

a

2019/10/22 08:42

投稿

vlb
vlb

スコア109

test CHANGED
File without changes
test CHANGED
@@ -104,6 +104,8 @@
104
104
 
105
105
  MutableData.value = value + self.value
106
106
 
107
+ self.value = 0
108
+
107
109
  }
108
110
 
109
111
  return TransactionResult.success(withValue: MutableData)

2

2019/10/21 13:38

投稿

vlb
vlb

スコア109

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### やりたいこと
2
2
 
3
- __FirstView__から__TableView__へ画面遷移した時に,1月の値がインクリメントされ,値が多い順に上から__Cell__表示する.
3
+ __FirstView__から__SecondView__へ画面遷移した時に,__Firebase__の値を更新しそのを__Firebase__から読み取って__SecondView__表示する.
4
4
 
5
5
 
6
6
 
@@ -18,21 +18,9 @@
18
18
 
19
19
  0. **写真3**のように__Realtime Database__を構成する.
20
20
 
21
- 0. プロジェクトを実行すると**写真4**のようになる.
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
- ### 問題点
30
-
31
- 1月が__Cell__に表示されない.
32
-
33
- インクリメントする月を変えても,そのインクリメントした月が表示されない.
34
-
35
- __print()__で__Log__を監視しても表示ない)
21
+ 0. プロジェクトを実行すると__FirestView__では__print(Array)__が実行されるが,__SecondView__へ画面遷移を行うと,__SecondView____print("error")__が実行される.
22
+
23
+
36
24
 
37
25
 
38
26
 
@@ -54,6 +42,8 @@
54
42
 
55
43
  var ref: DatabaseReference!
56
44
 
45
+ var value: Int = 0
46
+
57
47
 
58
48
 
59
49
 
@@ -66,7 +56,33 @@
66
56
 
67
57
 
68
58
 
69
- self.ref = Database.database().reference().child("This")
59
+ self.ref = Database.database().reference()
60
+
61
+ self.ref.observeSingleEvent(of: .value) { (DataSnapshot) in
62
+
63
+ guard let Array = DataSnapshot.value as? [String: Int] else {
64
+
65
+ print("error")
66
+
67
+ return
68
+
69
+ }
70
+
71
+ print(Array) //["値": 3]
72
+
73
+ }
74
+
75
+ }
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+ @IBAction func increment(_ sender: UIButton) {
84
+
85
+ self.value += 1
70
86
 
71
87
  }
72
88
 
@@ -82,11 +98,11 @@
82
98
 
83
99
 
84
100
 
85
- self.ref.child("1月").runTransactionBlock { (MutableData) -> TransactionResult in
101
+ self.ref.child("").runTransactionBlock { (MutableData) -> TransactionResult in
86
-
102
+
87
- if let inc = MutableData.value as? Int {
103
+ if let value = MutableData.value as? Int {
88
-
104
+
89
- MutableData.value = inc + 1
105
+ MutableData.value = value + self.value
90
106
 
91
107
  }
92
108
 
@@ -120,15 +136,15 @@
120
136
 
121
137
 
122
138
 
123
- class TableViewController: UITableViewController {
139
+ class SecondViewController: UIViewController {
124
-
125
-
126
-
127
- @IBOutlet var list: UITableView!
140
+
141
+
128
142
 
129
143
  var ref: DatabaseReference!
130
144
 
145
+
146
+
131
- var rank = [(key: String, value: Int)]()
147
+ @IBOutlet weak var label: UILabel!
132
148
 
133
149
 
134
150
 
@@ -140,56 +156,48 @@
140
156
 
141
157
  super.viewDidLoad()
142
158
 
159
+ }
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ override func viewDidAppear(_ animated: Bool) {
168
+
169
+ super.viewDidAppear(animated)
170
+
143
171
 
144
172
 
145
- self.ref = Database.database().reference().child("This")
173
+ self.ref = Database.database().reference()
146
174
 
147
175
  self.ref.observeSingleEvent(of: .value) { (DataSnapshot) in
148
176
 
149
- let namesArray = DataSnapshot.value as! [String: Int]
177
+ guard let Array = DataSnapshot.value as? [String: Int] else {
178
+
150
-
179
+ print("error") //error
180
+
151
- self.rank = namesArray.sorted {$0.value > $1.value}
181
+ self.label.text = "error"
182
+
152
-
183
+ return
184
+
185
+ }
186
+
187
+ print(Array)
188
+
189
+ if let value = Array["値"] {
190
+
153
- self.list.reloadData()
191
+ self.label.text = String(value)
192
+
193
+ }
154
194
 
155
195
  }
156
196
 
157
197
  }
158
198
 
159
-
160
-
161
-
162
-
163
-
164
-
165
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
166
-
167
- return self.rank.count
168
-
169
- }
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
178
-
179
- let cell = tableView.dequeueReusableCell(withIdentifier: "listCell", for: indexPath)
180
-
181
- cell.textLabel?.text = self.rank[indexPath.row].key
182
-
183
- cell.detailTextLabel?.text = String(self.rank[indexPath.row].value)
184
-
185
- return cell
186
-
187
- }
188
-
189
199
  }
190
200
 
191
-
192
-
193
201
  ```
194
202
 
195
203
 
@@ -202,7 +210,7 @@
202
210
 
203
211
  __Main.storyboard__
204
212
 
205
- ![イメージ説明](fc543ad6d3ad37e52d5e64d78dde7c7e.png)
213
+ ![イメージ説明](b556d6bd7c789bed0e46b403bae53457.png)
206
214
 
207
215
 
208
216
 
@@ -210,7 +218,7 @@
210
218
 
211
219
  構成
212
220
 
213
- ![イメージ説明](4d97a751ef752c77312cfe525b02541e.png)
221
+ ![イメージ説明](2fe1ef8042470fb495e5c6897b07e93e.png)
214
222
 
215
223
 
216
224
 
@@ -218,7 +226,7 @@
218
226
 
219
227
  __Firebase__
220
228
 
221
- ![イメージ説明](cb48fd2ad2f231b196c6b36ef820a14c.png)
229
+ ![イメージ説明](12e29600e2042f6db63aef3285dbd2f9.png)
222
230
 
223
231
 
224
232
 
@@ -226,7 +234,7 @@
226
234
 
227
235
  デバイス上
228
236
 
229
- ![イメージ説明](368c94188650a29e2d479cc6c871ae9a.png)
237
+ ![イメージ説明](ba8ffee8295081efa4a631f03f5b2cc0.png)
230
238
 
231
239
 
232
240
 
@@ -234,6 +242,8 @@
234
242
 
235
243
  ### 写真5
236
244
 
245
+ 実際のアプリに近づけた構成
246
+
237
247
  ![イメージ説明](8c0a5ccdb7e8bea6fcfd7965b02f80e9.png)
238
248
 
239
249
 

1

2019/10/21 13:30

投稿

vlb
vlb

スコア109

test CHANGED
File without changes
test CHANGED
@@ -232,6 +232,14 @@
232
232
 
233
233
 
234
234
 
235
+ ### 写真5
236
+
237
+ ![イメージ説明](8c0a5ccdb7e8bea6fcfd7965b02f80e9.png)
238
+
239
+
240
+
241
+
242
+
235
243
 
236
244
 
237
245
  ### 環境