前提・実現したいこと
作成したプログラムを実行して最初の画面を表示させることはできるのですが、次の画面に進むためにボタンを押すと以下のようなエラーメッセージが表示されます。ここが解決すれば正常に動かせると思うので、どなたか教えていただけますでしょうか。
発生している問題・エラーメッセージ
Thread 1: signal SIGABRT
試したこと
Outlet接続がちゃんとされているかを調べて、エラーになっていないことを確認しました。
補足情報(FW/ツールのバージョンなど)
######書いたコード
【ViewController】
import UIKit
class ViewController: UIViewController {
var d = "" @IBOutlet weak var nameField: UITextField! @IBAction func paButton(_ sender: UIButton) { performSegue(withIdentifier: "paGoResult", sender: nil) } @IBAction func guButton(_ sender: UIButton) { performSegue(withIdentifier: "guGoResult", sender: nil) } @IBAction func tyokiButton(_ sender: Any) { performSegue(withIdentifier: "tyokiGoResult", sender: nil) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "goPaResult" { let paController = self.nameField.text! let nameOne: ResultViewController = segue.destination as! ResultViewController nameOne.a = paController } else if segue.identifier == "goGuResult" { let guController = self.nameField.text! let nameTwo: ResultViewController = segue.destination as! ResultViewController nameTwo.b = guController } else if segue.identifier == "goTyokiResult" { let tyokiController = self.nameField.text! let nameThree: ResultViewController = segue.destination as! ResultViewController nameThree.c = tyokiController } } override func viewDidLoad() { super.viewDidLoad() if let restartButton = d as Optional { nameField.text = restartButton } }
}
【ResultViewController】
import UIKit
class ResultViewController: UIViewController {
@IBOutlet weak var restartButton: UIButton! @IBOutlet weak var resultLabel: UILabel! @IBOutlet weak var nameLabel: UILabel! @IBAction func restartButton(_ segue: UIStoryboardSegue) { } var a = "" var b = "" var c = "" var result: [String] = ["あなたの勝ちです!", "あいこです", "あなたの負けです…"] override func viewDidLoad() { super.viewDidLoad() if let pa = a as Optional { nameLabel.text = pa + "さん" } else if let gu = b as Optional { nameLabel.text = gu + "さん" } else if let tyoki = c as Optional { nameLabel.text = tyoki + "さん" } let probability = Int.random(in: 0..<3) resultLabel.text = result[probability] let rgba = UIColor(red: 255/255, green: 128/255, blue: 168/255, alpha: 1.0) restartButton.backgroundColor = rgba restartButton.layer.borderWidth = 0.5 restartButton.layer.borderColor = UIColor.black.cgColor restartButton.layer.cornerRadius = 5.0 restartButton.setTitleColor(UIColor.white, for: UIControl.State.normal) }
}
Consoleに表示されているメッセージ
2018-11-22 13:05:40.959615+0900 janken[1337:167227] Unknown class ResultViewController in Interface Builder file.
2018-11-22 13:05:40.996640+0900 janken[1337:167227] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x7f934d517260> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key nameLabel.'
回答2件
あなたの回答
tips
プレビュー