朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
Swift ViewController同士での画面遷移時のデータの受け渡し





ビュー同士のデータの受け渡しで、前のビュー(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.
    }
    
}
    








良いやや良い普通やや悪い悪い

投稿日時評価コメント