Swiftで行こう!--遷移でデータ移行!
意外と簡単に画面遷移できますね。
それで、例えばAの画面からBの画面に移った時にAで書いた情報をBの画面で表示する方法を記録しておきます。
画面としては2つの画面です。起動時に左のViewControllerが立ち上がります。そして、Buttonを押すと、右側の画面NextViewControllerに画面遷移します。
追加のコードです。
最初に変数宣言です。@IBOutletはStory Boadで紐ずけしている変数textFieldです。ここに文字を入れて遷移したB画面で表示させます。
@IBOutlet weak var textField: UITextField!
その下にある変数inputTextが受け渡しするために作る変数です。
var inputText:String!
次に遷移するためのメソッドです。override で記述していきます。
override func prepare(for segue: UIStoryboardSegue, sender: Any!) {
if (segue.identifier == "segue") {
let next: NextViewController = (segue.destination as? NextViewController)!
inputText = self.textField.text
next.text = inputText
}
}
if (segue.identifier == "segue") {} "segue"はセグエの名前です。 "segue"という名前のセグエの場合にデータを移します。
そして、次に遷移先の画面を変数に代入して扱いやすくします。
let next: NextViewController = (segue.destination as? NextViewController)!
最後にデータ移行用の変数inputTextにself.textField.textで書いたデータを代入します。
そして next.text = inputText で次の画面の変数textにデータを入れます。
次に遷移するきっかけですね。Buttonを押したら遷移するようにします。
事前にStory Boadで紐ずけしています。ここではprint()のみ記述しています。特に意味ありません。
@IBAction func button(_ sender: Any) {
print("Hello")
}
最後に最初の画面に戻るためのコードです。
@IBAction func goBack(_ segue:UIStoryboardSegue) {}
紐ずけは
引っ張って、
goBackを選ぶと完成です。
コードの全体です。