何度も調べているので、自分用にまとめます。
ここに記したもの以外にもいくつか方法はあります。
##やりたいこと
commentTextView
に書かれたものを画面遷移先で使いたい!
##手順
- 遷移のきっかけ(?)となるボタン(以下ボタンA)と遷移先のViewControllerを繋ぐ。
- storyborad上のsegueにidentifierをつける(例"next")
- ボタンAをswiftファイルに@IBActionで結びつける。'performSegue'メソッドの引数'withIdentifier'には2で入力したものを入れる
@IBAction func next(_ sender: Any) {
performSegue(withIdentifier: "next", sender: nil)
}
ここまでで遷移自体はできます。以下から値渡しになります。
4. 遷移先のViewControllerに渡したい値を型に持つ変数を定義する。
var nextString1 = String()
var nextString2 = ""
5.遷移前のViewControllerでprepare
メソッドをオーバーライドする。
引数for segue
には遷移前のViewController名を入れる。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let nextVC = segue.destination as? NextViewController
NextVC?.nextString1 = commentTextView.text
}
これで値渡し自体はできています。
あとは遷移先のViewControllerがロードされた時にラベルに貼り付けるのような操作を加えれば終了です。
6.遷移先のViewControllerのViewDidLoad
メソッドに代入する操作をかく
override func viewDidLoad() {
super.viewDidLoad()
nextLabel.text = nextString1
}
以上です。調べればわかりますが、このサイトに4回アクセスしていますみたいなのはストレスなんですよね〜