前提・実現したいこと
プログラミング初心者です。 結論から申し上げますと、TextFieldに入力された値を画面遷移で次のViewControllerに受け渡し計算に使用したいです。
発生している問題・エラーメッセージ
6つテキストフィールドがあるうちの数字を入れる3つが空欄の場合にエラーが起きてしまいます。
Unexpectedly found nil while unwrapping an Optional value
該当のソースコード
Swift
1import UIKit 2 3class ViewController: UIViewController 4 5 @IBOutlet var MetalNameField1 : UITextField! 6 @IBOutlet var MetalNameField2 : UITextField! 7 @IBOutlet var MetalNameField3 : UITextField! 8 @IBOutlet var MetalRatioField1 : UITextField! 9 @IBOutlet var MetalRatioField2 : UITextField! 10 @IBOutlet var MetalRatioField3 : UITextField! 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // Do any additional setup after loading the view. 15 } 16 17 18@IBAction func gotoSecond() { 19 if(MetalNameField1.text != "" && MetalNameField2.text != "" && MetalNameField3.text != "" && MetalRatioField1.text != "" && MetalRatioField2.text != "" && MetalRatioField3.text != "" ) { 20 21 if element.contains(MetalNameField1.text!) && element.contains(MetalNameField2.text!) && element.contains(MetalNameField3.text!) { 22 23 self.performSegue(withIdentifier: "toSecond", sender: nil) //画面遷移をするコード 24 }else{ 25 noneAlert() 26 } 27 28 }else{ 29 //フィールドが空のときに呼び出される 30 karaAlert() 31 } 32 } 33 34. 35. 36. 37 38override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 39 40 if segue.identifier == "toSecond" { 41 let nextVC = segue.destination as! SecondViewController 42 nextVC.MetalName1 = MetalNameField1.text! 43 nextVC.MetalName2 = MetalNameField2.text! 44 nextVC.MetalName3 = MetalNameField3.text! 45 nextVC.MetalRatio1 = Double(MetalRatioField1.text!)! 46 nextVC.MetalRatio2 = Double(MetalRatioField2.text!)! 47 nextVC.MetalRatio3 = Double(MetalRatioField3.text!)! 48 49 } 50} 51
試したこと
関連付けなどを確認しましたが、関連付けに間違っている点はなかったです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/15 12:06
2020/09/15 12:28
2020/09/15 13:24
2020/09/15 13:25
2020/09/15 13:54
2020/09/15 20:32