質問するログイン新規登録

質問編集履歴

6

2019/11/17 11:30

投稿

vlb
vlb

スコア110

title CHANGED
File without changes
body CHANGED
@@ -122,6 +122,8 @@
122
122
 
123
123
  ### 写真5
124
124
  実際のアプリに近づけた構成
125
+ __detail__で値を増やし,__detail__から__Second__へ画面遷移をした際に__Firebase__への書き込みと書き出しを行う.
126
+ その際に問題が発生する.
125
127
  ![イメージ説明](0463f40ce0249822503ccf9a4278d33b.png)
126
128
 
127
129
 

5

a

2019/11/17 11:30

投稿

vlb
vlb

スコア110

title CHANGED
File without changes
body CHANGED
@@ -122,7 +122,7 @@
122
122
 
123
123
  ### 写真5
124
124
  実際のアプリに近づけた構成
125
- ![イメージ説明](8c0a5ccdb7e8bea6fcfd7965b02f80e9.png)
125
+ ![イメージ説明](0463f40ce0249822503ccf9a4278d33b.png)
126
126
 
127
127
 
128
128
 

4

a

2019/11/17 11:27

投稿

vlb
vlb

スコア110

title CHANGED
File without changes
body CHANGED
@@ -63,7 +63,7 @@
63
63
 
64
64
 
65
65
  ### コード2
66
- __TableViewController.swift__
66
+ __SecondViewController.swift__
67
67
  ```Swift
68
68
  import UIKit
69
69
  import Firebase

3

a

2019/10/22 08:42

投稿

vlb
vlb

スコア110

title CHANGED
File without changes
body CHANGED
@@ -51,6 +51,7 @@
51
51
  self.ref.child("値").runTransactionBlock { (MutableData) -> TransactionResult in
52
52
  if let value = MutableData.value as? Int {
53
53
  MutableData.value = value + self.value
54
+ self.value = 0
54
55
  }
55
56
  return TransactionResult.success(withValue: MutableData)
56
57
  }

2

2019/10/21 13:38

投稿

vlb
vlb

スコア110

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ### やりたいこと
2
- __FirstView__から__TableView__へ画面遷移した時に,1月の値がインクリメントされ,値が多い順に上から__Cell__に表示する.
2
+ __FirstView__から__SecondView__へ画面遷移した時に,__Firebase__の値を更新しそのを__Firebase__から読み取って__SecondView__で表示する.
3
3
 
4
4
 
5
5
  ### これまでの流れ
@@ -8,15 +8,9 @@
8
8
  0. **写真1**のようにオブジェクトを配置する.
9
9
  0. **コード1**と**コード2**を記述する.
10
10
  0. **写真3**のように__Realtime Database__を構成する.
11
- 0. プロジェクトを実行すると**写真4**のよになる.
11
+ 0. プロジェクトを実行すると__FirestView__では__print(Array)__が実行されるが,__SecondView__へ画面遷移を行と,__SecondView__では__print("error")__が実行される.
12
12
 
13
13
 
14
-
15
- ### 問題点
16
- 1月が__Cell__に表示されない.
17
- インクリメントする月を変えても,そのインクリメントした月が表示されない.
18
- (__print()__で__Log__を監視しても表示がない)
19
-
20
14
  ### コード1
21
15
  __ViewController.swift__
22
16
  ```Swift
@@ -26,23 +20,37 @@
26
20
  class ViewController: UIViewController {
27
21
 
28
22
  var ref: DatabaseReference!
23
+ var value: Int = 0
29
24
 
30
25
 
31
26
 
32
27
  override func viewDidLoad() {
33
28
  super.viewDidLoad()
34
29
 
35
- self.ref = Database.database().reference().child("This")
30
+ self.ref = Database.database().reference()
31
+ self.ref.observeSingleEvent(of: .value) { (DataSnapshot) in
32
+ guard let Array = DataSnapshot.value as? [String: Int] else {
33
+ print("error")
34
+ return
35
+ }
36
+ print(Array) //["値": 3]
37
+ }
36
38
  }
37
39
 
38
40
 
39
41
 
42
+ @IBAction func increment(_ sender: UIButton) {
43
+ self.value += 1
44
+ }
45
+
46
+
47
+
40
48
  override func viewWillDisappear(_ animated: Bool) {
41
49
  super.viewWillDisappear(animated)
42
50
 
43
- self.ref.child("1月").runTransactionBlock { (MutableData) -> TransactionResult in
51
+ self.ref.child("").runTransactionBlock { (MutableData) -> TransactionResult in
44
- if let inc = MutableData.value as? Int {
52
+ if let value = MutableData.value as? Int {
45
- MutableData.value = inc + 1
53
+ MutableData.value = value + self.value
46
54
  }
47
55
  return TransactionResult.success(withValue: MutableData)
48
56
  }
@@ -59,63 +67,60 @@
59
67
  import UIKit
60
68
  import Firebase
61
69
 
62
- class TableViewController: UITableViewController {
70
+ class SecondViewController: UIViewController {
63
71
 
64
- @IBOutlet var list: UITableView!
65
72
  var ref: DatabaseReference!
66
- var rank = [(key: String, value: Int)]()
67
73
 
74
+ @IBOutlet weak var label: UILabel!
68
75
 
69
76
 
77
+
70
78
  override func viewDidLoad() {
71
79
  super.viewDidLoad()
72
-
73
- self.ref = Database.database().reference().child("This")
74
- self.ref.observeSingleEvent(of: .value) { (DataSnapshot) in
75
- let namesArray = DataSnapshot.value as! [String: Int]
76
- self.rank = namesArray.sorted {$0.value > $1.value}
77
- self.list.reloadData()
78
- }
79
80
  }
80
81
 
81
82
 
82
83
 
83
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
84
+ override func viewDidAppear(_ animated: Bool) {
84
- return self.rank.count
85
+ super.viewDidAppear(animated)
86
+
87
+ self.ref = Database.database().reference()
88
+ self.ref.observeSingleEvent(of: .value) { (DataSnapshot) in
89
+ guard let Array = DataSnapshot.value as? [String: Int] else {
90
+ print("error") //error
91
+ self.label.text = "error"
92
+ return
93
+ }
94
+ print(Array)
95
+ if let value = Array["値"] {
96
+ self.label.text = String(value)
97
+ }
98
+ }
85
99
  }
86
-
87
-
88
-
89
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
90
- let cell = tableView.dequeueReusableCell(withIdentifier: "listCell", for: indexPath)
91
- cell.textLabel?.text = self.rank[indexPath.row].key
92
- cell.detailTextLabel?.text = String(self.rank[indexPath.row].value)
93
- return cell
94
- }
95
100
  }
96
-
97
101
  ```
98
102
 
99
103
 
100
104
 
101
105
  ### 写真1
102
106
  __Main.storyboard__
103
- ![イメージ説明](fc543ad6d3ad37e52d5e64d78dde7c7e.png)
107
+ ![イメージ説明](b556d6bd7c789bed0e46b403bae53457.png)
104
108
 
105
109
  ### 写真2
106
110
  構成
107
- ![イメージ説明](4d97a751ef752c77312cfe525b02541e.png)
111
+ ![イメージ説明](2fe1ef8042470fb495e5c6897b07e93e.png)
108
112
 
109
113
  ### 写真3
110
114
  __Firebase__
111
- ![イメージ説明](cb48fd2ad2f231b196c6b36ef820a14c.png)
115
+ ![イメージ説明](12e29600e2042f6db63aef3285dbd2f9.png)
112
116
 
113
117
  ### 写真4
114
118
  デバイス上
115
- ![イメージ説明](368c94188650a29e2d479cc6c871ae9a.png)
119
+ ![イメージ説明](ba8ffee8295081efa4a631f03f5b2cc0.png)
116
120
 
117
121
 
118
122
  ### 写真5
123
+ 実際のアプリに近づけた構成
119
124
  ![イメージ説明](8c0a5ccdb7e8bea6fcfd7965b02f80e9.png)
120
125
 
121
126
 

1

2019/10/21 13:30

投稿

vlb
vlb

スコア110

title CHANGED
File without changes
body CHANGED
@@ -115,7 +115,11 @@
115
115
  ![イメージ説明](368c94188650a29e2d479cc6c871ae9a.png)
116
116
 
117
117
 
118
+ ### 写真5
119
+ ![イメージ説明](8c0a5ccdb7e8bea6fcfd7965b02f80e9.png)
118
120
 
121
+
122
+
119
123
  ### 環境
120
124
  xcode : ver11.0
121
125
  Swift : ver5.1