クイズアプリswiftでPresent Modallyでの遷移を成功させたい

前提

ここに質問の内容を詳しく書いてください。
Xcodeでクイズアプリを作っています。
問題がすべて解答した後に次の画面に遷移する実装中にエラーメッセージが発生しました。

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • [ ]Present Modallyによるsegueを形成し画面遷移させたいです。

発生している問題・エラーメッセージ

Thread 1: Fatal error: Index out of range

該当のソースコード

swift

import UIKit class QuizViewController: UIViewController { @IBOutlet weak var quizNumberlabel: UILabel! @IBOutlet weak var quizTextView: UITextView! @IBOutlet weak var answerButton1: UIButton! @IBOutlet weak var answerButton2: UIButton! @IBOutlet weak var answerButton3: UIButton! @IBOutlet weak var answerButton4: UIButton! var csvArray: [String] = [] var quizArray: [String] = [] var quizCount = 0 override func viewDidLoad() { super.viewDidLoad() csvArray = loadCSV(filename: "Quiz") print(csvArray) quizArray = csvArray[quizCount].components(separatedBy: ",") quizNumberlabel.text = "第\(quizCount + 1)問" quizTextView.text = quizArray[0] answerButton1.setTitle(quizArray[2], for: .normal) answerButton2.setTitle(quizArray[3], for: .normal) answerButton3.setTitle(quizArray[4], for: .normal) answerButton4.setTitle(quizArray[5], for: .normal) // Do any additional setup after loading the view. } @IBAction func btnAction(sender: UIButton) { if sender.tag == Int(quizArray[1]) { print("正解") } else { print("不正解") } nextQuiz() } func nextQuiz() { quizCount += 1 if quizCount < csvArray.count { quizArray = csvArray[quizCount].components(separatedBy: ",") quizNumberlabel.text = "第\(quizCount + 1)問" quizTextView.text = quizArray[0] answerButton1.setTitle(quizArray[2], for: .normal) answerButton2.setTitle(quizArray[3], for: .normal) answerButton3.setTitle(quizArray[4], for: .normal) answerButton4.setTitle(quizArray[5], for: .normal) } else { performSegue(withIdentifier: "toScoreVC", sender: nil) } } func loadCSV(filename: String) -> [String] { let csvBundle = Bundle.main.path(forResource: filename, ofType: "csv")! do { let csvData = try String(contentsOfFile: csvBundle, encoding: String.Encoding.utf8) let lineChange = csvData.replacingOccurrences(of: "\r", with: "\n") csvArray = lineChange.components(separatedBy: "\n") csvArray.removeLast() } catch { print("エラー") } return csvArray }

試したこと

補足情報(FW/ツールのバージョンなど)

Xcode Version 13.4.1 storyboard

コメントを投稿

0 コメント