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

質問編集履歴

2

書式の改善

2021/10/06 01:08

投稿

goodyogurt
goodyogurt

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- 画面遷移と同時にニフティクラウドから取得したデータを配列でtextviewに表示したいです。
1
+ 画面遷移と同時にニフティクラウドから取得したデータをランダムでtextviewに表示したいです。
body CHANGED
File without changes

1

書式の改善

2021/10/06 01:08

投稿

goodyogurt
goodyogurt

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- ニフティクラウドから取得したデータtextviewに表示されな
1
+ 画面遷移と同時にニフティクラウドから取得したデータを配列でtextviewに表示したです。
body CHANGED
@@ -1,16 +1,16 @@
1
1
  初心者です。
2
2
  XcodeとNCMBを用いています。
3
- 前の画面でNEXTボタンを押したら画面遷移すると同時に、ニフティクラウドのクラス(praise)に保存した文(word)がランダムでtextviewに表示されるようにしたいです。
4
3
 
4
+ **実現したいこと**
5
- しかし、ボタンを押すと遷移はできるのでNCMBから取ってきデータがtextviewに表示されません
5
+ 前の画面でNextボタンを押したら画面遷移すると同時にニフティクラウドのクラス(praise)に保存しField(word)の内容ランダムでtextviewに表示されるようにしたいです
6
- 解決方法教えていただけると幸いです。
6
+ ![イメージ説明](b3b50171dbe55f7a86341fab859669c9.png)
7
7
 
8
- ![![イメージ説明](cf8fefc2f3056ce9fde550c3b49f1d35.png)](e66506027c5e67dfe2df0b8f55e1ddca.png)
9
- ![イメージ説明](3c62773c29c06fa928c7f4dcf6582c82.png)
10
8
 
11
- !![イメージ説明](b3b50171dbe55f7a86341fab859669c9.png)明](92529a9b51afacea0355ef6390e167d7.png)
12
- ```ここに言語を入力
9
+ **発生している問題**
10
+ しかし、前画面でNextボタンを押すと画面遷移はできるのですが、実現したいことに書いた表示したい内容が次画面のtextviewに表示されません。
13
11
 
12
+ **ソースコード**
13
+ ```
14
14
  import UIKit
15
15
  import NCMB
16
16
  import KRProgressHUD
@@ -76,5 +76,104 @@
76
76
  }
77
77
  }
78
78
 
79
+ ```
79
80
 
81
+ **前画面のコード**
82
+
80
- ```
83
+ ```
84
+ import UIKit
85
+ import NCMB
86
+
87
+ class WordViewController: UIViewController {
88
+
89
+ @IBOutlet var memotextView: UITextView!
90
+ var praiseTag = ""
91
+ let ud = UserDefaults.standard
92
+
93
+ override func viewDidLoad() {
94
+ super.viewDidLoad()
95
+
96
+ // Do any additional setup after loading the view.
97
+ }
98
+ override func viewWillAppear(_ animated: Bool) {
99
+ memotextView.becomeFirstResponder()
100
+ }
101
+
102
+ @IBAction func nextButton(){
103
+ praiseTag = "aa"
104
+ ud.set(praiseTag, forKey: "Tag")
105
+ //画面遷移をする
106
+ performSegue(withIdentifier: "showWord", sender: nil)
107
+
108
+ // loaddata()
109
+ }
110
+ //saveButtonを押して,UserDefaultsで端末に保存
111
+ @IBAction func saveButton(){
112
+ let inputText = memotextView.text
113
+ let ud = UserDefaults.standard
114
+ if ud.array(forKey: "memoArray") != nil{
115
+ var saveMemoArray = ud.array(forKey: "memoArray") as![String]
116
+
117
+ if inputText != nil{
118
+ saveMemoArray.append(inputText!)
119
+ }else{
120
+ print("何も入力されていません")
121
+ }
122
+ ud.set(saveMemoArray, forKey: "memoArray")
123
+ }else{
124
+ var newMemoArray = [String]()
125
+
126
+ if inputText != nil{
127
+ newMemoArray.append(inputText!)
128
+ }else{
129
+
130
+ print("何も入力されていません")
131
+ }
132
+
133
+ ud.set(newMemoArray, forKey: "memoArray")
134
+ }
135
+ ud.synchronize()
136
+ self.dismiss(animated: true, completion: nil)
137
+
138
+ let alertController = UIAlertController(title: "保存完了!", message: "日記感覚で使ってね!", preferredStyle: .alert)
139
+ let action = UIAlertAction(title: "閉じる", style: .default) { (action) in
140
+ }
141
+ alertController.addAction(action)
142
+ self.present(alertController, animated: true, completion: nil)
143
+
144
+ }
145
+
146
+ }
147
+
148
+
149
+ ```
150
+ **自分が思う原因**
151
+
152
+ ```
153
+ if let word = selectedPraise?.object(forKey: "word") as? String {
154
+ praiseTextView.text = word
155
+ ```
156
+ ここでいうwordとはニフティクラウド上で作成したクラスのなかのfieldの名前なので=の後に入れていいのかわからないです。
157
+
158
+
159
+ ```
160
+ for i in results as! [NCMBObject]{
161
+ praiseArray .append(i)
162
+ ```
163
+ の部分でresultsが空っぽでpraiseArrayになにも追加されていなくてtextviewに表示するものがないのか
164
+
165
+ ```
166
+ selectedPraise?.object(forKey: "word")
167
+ ```
168
+ で、適切な値を得られていないのか
169
+
170
+ いずれの場合も対処法がわからず、困っています。ご教示の程よろしくお願いいたします。
171
+
172
+ **問題の発生した環境**
173
+ Xcode SWift
174
+
175
+ **前画面**
176
+ ![![イメージ説明](cf8fefc2f3056ce9fde550c3b49f1d35.png)
177
+
178
+ **問題が起こっている画面**
179
+ ![イメージ説明](3c62773c29c06fa928c7f4dcf6582c82.png)