ビュー同士のデータの受け渡しで、前のビュー(ViewController)から次のビュー(NextViewController)へ画面遷移して、NextViewControllerで入力したデータを前のビューに受け渡したいことがあります。
まず、ViewControllerで、@IBAction func returnToMe(segue: UIStoryboardSegue)というメソッドを作って置きます。
次にNextViewControllerで戻るためのボタンを設置して、そのボタンからコントロールキーを押しながらStoryboard上のNextViewControllerの上にある「Exit」まで線を伸ばします。
するとreturnToMeメソッドが表示されますので選択します。
returnToMeメソッドの中身はサンプルを見て頂ければわかるように、segue.sourceにNextViewControllerのインスタンスが入っているので、それを使ってデータを取り出します。
知っていれば簡単ですが、なかなかわからないものです。
ViewController.swift
class ViewController: UIViewController { @IBOutlet weak var lblDestination: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } //前のビューから戻ってきた時に呼ばれるメソッド @IBAction func returnToMe(segue: UIStoryboardSegue) { //前のビューを取得する let view = segue.source as! NextViewController //前のビューからデータを取り出して表示する self.lblDestination.text = view.txtSource.text } }
NextViewController.swift
class NextViewController: UIViewController { //ユーザが入力するテキストボックス @IBOutlet weak var txtSource: UITextField! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } }