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

質問編集履歴

2

最初に質問した時は次のステップ分まで入っていました。そこで、「編集」でその部分を修正しました。

2017/07/08 16:21

投稿

Tomzy
Tomzy

スコア104

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
- ```// MondaiViewController.swift
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
- let total = 10 //出題数を管理する変数
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
- //問題数ラベル、問題表示TextView、選択肢ボタンに文字をセット
107
+ //問題数ラベル、問題表示TextView、選択肢ボタンに文字をセット
105
- mondaiNumberLabel.text = "第\(mondaiCount+1)問"
108
+ mondaiNumberLabel.text = "第\(mondaiCount+1)問"
106
- mondaiField.text = mondaiArray[0]
109
+ mondaiField.text = mondaiArray[0]
110
+
107
- print ("ここまで来たddd")
111
+ print ("ここまで来たddd")
108
- }else{
112
+
109
- // //Stroyboard SegueIdentifierを引数設定し画面遷移
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
- print ("ここまで来たhhh")
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
  ![イメージ説明](b829b95b37fd5f6384ed635fe068f742.png)
131
145
 
132
146
 
133
147
  ご参考事項
134
148
 
135
- 1. 茶色のもどる ボタンは本のImageを使ったのでもどるになっていますが本来なら次のボタンです。@IBAction func btn02Actionと結んでいます。
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
- ここまで来たhhh
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
- 4.開発環境は下記のとおりです。
175
+ 5.開発環境は下記のとおりです。
147
176
  MacBookPro
148
177
  OS-X10.12.4 Sierra
149
178
  Xcode 8.3.2 (8E2002)

1

最初の質問には次のステップまで含んでいたので、それを取り除いて問題箇所のみに論を絞りました。

2017/07/08 16:21

投稿

Tomzy
Tomzy

スコア104

title CHANGED
File without changes
body CHANGED
File without changes