質問編集履歴
2
最初に質問した時は次のステップ分まで入っていました。そこで、「編集」でその部分を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
**> 問題を修正しました。**
|
1
2
|
「世界一受けたい iPhoneアプリ開発の授業 Chapter7-2
|
2
3
|
四択検定アプリを作ろう」を参考にしてcsvファイルを読み込み第2問を表示するところまでは行ったのですが、第2問は瞬間で消えて第1問に表示が戻ってしまいます。
|
3
4
|
|
@@ -6,13 +7,13 @@
|
|
6
7
|
本のコード(ウェブサイトより最新をダウンロード)と自分のコードを何度も見比べたのですが、どうしても原因が分かりません。
|
7
8
|
|
8
9
|
ご教示頂ければ幸いです。コードとスクリーンショットは下記のとおりです。
|
10
|
+
最初に質問した時は次のステップ分まで入っていました。そこで、「編集」でその部分を修正しました。
|
9
11
|
|
10
12
|
**私のコード**
|
11
13
|
|
12
|
-
```
|
14
|
+
``` MondaiViewController.swift
|
13
15
|
// Mondai01
|
14
16
|
//
|
15
|
-
//
|
16
17
|
|
17
18
|
import UIKit
|
18
19
|
|
@@ -32,7 +33,7 @@
|
|
32
33
|
|
33
34
|
var mondaiCount = 0 //問題をカウントする変数
|
34
35
|
var correctCount = 0 //正解をカウントする変数
|
35
|
-
|
36
|
+
// let total = 10 //出題数を管理する変数
|
36
37
|
var nextBtn = UIButton()
|
37
38
|
|
38
39
|
override func viewDidLoad() {
|
@@ -45,6 +46,7 @@
|
|
45
46
|
//loadCSVメソッドを使用し、csvArrayに検定問題を格納
|
46
47
|
csvArray = viewController.loadCSV("OnseiTextsCSV")
|
47
48
|
|
49
|
+
|
48
50
|
//csvArrayの0行目を取り出し、カンマを区切りとしてmondaiArrayに格納
|
49
51
|
mondaiArray = csvArray[mondaiCount].components(separatedBy: ",")
|
50
52
|
|
@@ -53,6 +55,7 @@
|
|
53
55
|
//TextViewに問題を設定
|
54
56
|
mondaiField.text = mondaiArray[0]
|
55
57
|
|
58
|
+
|
56
59
|
//テキストビューに自動でキーボード表示
|
57
60
|
kaitouField.becomeFirstResponder()
|
58
61
|
|
@@ -61,6 +64,7 @@
|
|
61
64
|
|
62
65
|
// プレースホルダー
|
63
66
|
kaitouField.placeholder = "マイクで問題を読む"
|
67
|
+
|
64
68
|
}
|
65
69
|
|
66
70
|
//回答ボタンをタップした時の回答正誤の判定と○X表示
|
@@ -87,63 +91,88 @@
|
|
87
91
|
answerBtn.isEnabled = false
|
88
92
|
}
|
89
93
|
}
|
94
|
+
|
90
|
-
|
95
|
+
func btn02Action(_ sender: UIButton) {
|
96
|
+
|
97
|
+
|
91
98
|
func nextQuestion(){
|
92
99
|
|
93
100
|
//問題カウント変数をカウントアップ
|
94
101
|
mondaiCount += 1
|
95
|
-
|
96
102
|
//mondaiArrayに格納されている問題配列を削除
|
97
103
|
mondaiArray.removeAll()
|
104
|
+
//csvArrayから次の問題配列をmondaiArrayに格納
|
105
|
+
mondaiArray = csvArray[mondaiCount+1].components(separatedBy: ",")
|
98
106
|
|
99
|
-
// //if-else文を追加。mondaiCountがtotalに達したら画面遷移
|
100
|
-
if mondaiCount < total{
|
101
|
-
//csvArrayから次の問題配列をmondaiArrayに格納
|
102
|
-
mondaiArray = csvArray[mondaiCount].components(separatedBy: ",")
|
103
|
-
|
104
|
-
|
107
|
+
//問題数ラベル、問題表示TextView、選択肢ボタンに文字をセット
|
105
|
-
|
108
|
+
mondaiNumberLabel.text = "第\(mondaiCount+1)問"
|
106
|
-
|
109
|
+
mondaiField.text = mondaiArray[0]
|
110
|
+
|
107
|
-
|
111
|
+
print ("ここまで来たddd")
|
108
|
-
|
112
|
+
|
109
|
-
//
|
113
|
+
//// 前回の質問に入っていた次のステップに進むためのif文ですので、CommentOutしました。
|
110
|
-
performSegue(withIdentifier: "score", sender: nil)
|
111
|
-
}
|
112
|
-
print ("ここまで来たeee")
|
113
|
-
}
|
114
|
-
@IBAction func btn02Action(_ sender: UIButton) {
|
115
114
|
|
115
|
+
//if-else文を追加。mondaiCountがtotalに達したら画面遷移
|
116
|
+
// if mondaiCount == total {
|
117
|
+
//
|
118
|
+
// //Stroyboard SegueのIdentifierを引数に設定して画面遷移
|
119
|
+
// performSegue(withIdentifier: "score", sender: nil)
|
120
|
+
|
121
|
+
// }
|
122
|
+
//
|
123
|
+
|
124
|
+
//else{
|
125
|
+
|
126
|
+
print ("ここまで来たeee")
|
127
|
+
}
|
128
|
+
|
116
|
-
|
129
|
+
//正誤表示画像を隠す
|
117
130
|
judgeImageView.isHidden = true
|
118
131
|
//nextQuestionメソッドを呼び出す
|
119
132
|
nextQuestion()
|
120
133
|
|
121
|
-
|
134
|
+
print ("ここまで来たfff")
|
135
|
+
|
122
136
|
}
|
137
|
+
|
123
138
|
override func didReceiveMemoryWarning() {
|
124
139
|
super.didReceiveMemoryWarning()
|
125
140
|
// Dispose of any resources that can be recreated.
|
126
141
|
}
|
127
142
|
}
|
128
|
-
|
129
143
|
```
|
130
144
|

|
131
145
|
|
132
146
|
|
133
147
|
ご参考事項
|
134
148
|
|
135
|
-
1. 茶色のもどる ボタンは本のImageを使ったのでもどるになっていますが本来なら次のボタンです。
|
149
|
+
1. 茶色のもどる ボタンは本のImageを使ったのでもどるになっていますが本来なら次のボタンです。func btn02Actionと結んでいます。
|
136
150
|
|
137
|
-
2. printの
|
151
|
+
2. 一度answerBtnを押し、次に戻るボタン、すなわちbtn02Actionを押した場合の現象は一瞬第2問の数字と問題が現れたあと消えて第1問と問題が現れます。一旦現れた判定の×マークは消えます、その時のprintの結果は下記のとおりです。
|
152
|
+
|
153
|
+
ここまで来た01
|
154
|
+
ここまで来た02
|
155
|
+
ここまで来た01
|
156
|
+
ここまで来たaaa
|
157
|
+
ここまで来た02
|
158
|
+
ここまで来た01
|
159
|
+
2017-07-09 00:56:10.916377+0900 Mondai01[79881:34645706] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/tomijisuzuki/Library/Developer/CoreSimulator/Devices/ systemgroup.com.apple.configurationprofiles
|
160
|
+
2017-07-09 00:56:10.916690+0900 Mondai01[79881:34645706] [MC] Reading from private effective user settings.
|
161
|
+
ここまで来たaaa222
|
162
|
+
ここまで来たccc
|
163
|
+
ここまで来たddd
|
138
164
|
ここまで来たeee
|
139
|
-
ここまで来た
|
165
|
+
ここまで来たfff
|
140
166
|
ここまで来たaaa
|
141
167
|
ここまで来た02
|
142
168
|
ここまで来た01
|
143
169
|
|
170
|
+
|
144
171
|
3.もどるボタンを何度押しても一旦第2問が表示され、すぐに1問にもどります。
|
145
172
|
|
173
|
+
4.一旦 ここまで来たfff には到達するのですが、何故か元に戻りここまで来たaaa をプリントする原因を承知したいと思います。それがこの質問の主旨です。
|
174
|
+
|
146
|
-
|
175
|
+
5.開発環境は下記のとおりです。
|
147
176
|
MacBookPro
|
148
177
|
OS-X10.12.4 Sierra
|
149
178
|
Xcode 8.3.2 (8E2002)
|
1
最初の質問には次のステップまで含んでいたので、それを取り除いて問題箇所のみに論を絞りました。
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|