前提・実現したいこと
遷移元のViewControllerから遷移先のViewControllerに値を渡したいのですが、やり方がわかりません。名前を入力してからグー、チョキ、パーのそれぞれのボタンを押すと次の画面で、「入力した名前+さん」のように表示できるようにしたいです。どなたかお分かりになる方がいましたら教えていただけますでしょうか。
発生している問題・エラーメッセージ
Use of unresolved identifier 'nameOne' Use of unresolved identifier 'nameTwo' Use of unresolved identifier 'nameThree'
該当のソースコード
Swift
1if let one = nameOne.a { 2 nameLabel.text = one + "さん" 3 } else if let two = nameTwo.b { 4 nameLabel.text = two + "さん" 5 } else if let three = nameThree.c { 6 nameLabel.text = three + "さん" 7 }
試したこと
下に記載したように、遷移元の方にprepareやsegueを使ったコードを書いて、nameFieldを別の定数に代入するという方法をとりました。
補足情報(FW/ツールのバージョンなど)
ViewControllerのコード(遷移元)
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var nameField: UILabel! @IBAction func restartButton(_ segue: UIStoryboardSegue) { nameField.text = "" } 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() }
}
resultViewControllerのコード(遷移先)
import UIKit
class resultViewController: UIViewController {
@IBOutlet weak var restartButton: UIButton! @IBOutlet weak var resultLabel: UILabel! @IBOutlet weak var nameLabel: UILabel! var a = "" var b = "" var c = "" var result: [String] = ["あなたの勝ちです!", "あいこです", "あなたの負けです…"] override func viewDidLoad() { super.viewDidLoad() if let one = nameOne.a { nameLabel.text = one + "さん" } else if let two = nameTwo.b { nameLabel.text = two + "さん" } else if let three = nameThree.c { nameLabel.text = three + "さん" } 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) }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/20 07:38 編集