質問編集履歴
2
書式の改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
画面遷移と同時にニフティクラウドから取得したデータを
|
1
|
+
画面遷移と同時にニフティクラウドから取得したデータをランダムでtextviewに表示したいです。
|
body
CHANGED
File without changes
|
1
書式の改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ニフティクラウドから取得したデータ
|
1
|
+
画面遷移と同時にニフティクラウドから取得したデータを配列でtextviewに表示したいです。
|
body
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
初心者です。
|
2
2
|
XcodeとNCMBを用いています。
|
3
|
-
前の画面でNEXTボタンを押したら画面遷移すると同時に、ニフティクラウドのクラス(praise)に保存した文(word)がランダムでtextviewに表示されるようにしたいです。
|
4
3
|
|
4
|
+
**実現したいこと**
|
5
|
-
|
5
|
+
前の画面でNextボタンを押したら画面遷移すると同時に、ニフティクラウドのクラス(praise)に保存したField(word)の内容がランダムでtextviewに表示されるようにしたいです。
|
6
|
-
|
6
|
+

|
7
7
|
|
8
|
-
](e66506027c5e67dfe2df0b8f55e1ddca.png)
|
9
|
-

|
10
8
|
|
11
|
-
!明](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
|
+

|
177
|
+
|
178
|
+
**問題が起こっている画面**
|
179
|
+

|