Sponsored Link
segueを使った値の受け渡しを解説します。
・準備としては画面遷移を行うのでViewControllerを二つ用意してそれぞれクラスを持たせたStoryBoardを作成します。
・次にNavigationControllerでViewControllerを内包させます。
するとNavigationControllerにViewControllerが内包される形になりますのでNavigationControllerに内包されたViewControllerと(ここでは遷移先をSecondViewControllerとします)SecondViewControllerを繋ぎます。
ここまでできたらコードで使う識別子の設定(Identifier)の設定を行います。
私は”segue”にしました。
Storyboardはこれで準備できましたのでコードを書いていきます。
ViewContoroller(渡したい値を持つView)
// // ViewController.swift // Segue for param // // Created by tarou yamasaki on 2015/02/04. // Copyright (c) 2015年 tarou yamasaki. All rights reserved. // import UIKit class ViewController: UIViewController { /// 画面遷移時に渡す為の値 var _param:String = "segue OK" /** インスタンス化された直後(初回一度のみ) viewDidLoad */ override func viewDidLoad() { super.viewDidLoad() } /** memoryWarning */ override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } /** 画面遷移ボタン */ @IBAction func _myButton(sender: AnyObject) { performSegueWithIdentifier("segue",sender: nil) } /** 画面遷移時に値を遷移先に渡す */ override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if (segue.identifier == "segue") { // SecondViewControllerクラスをインスタンス化してsegue(画面遷移)で値を渡せるようにバンドルする var secondView : SecondViewController = segue.destinationViewController as SecondViewController // secondView(バンドルされた変数)に受け取り用の変数を引数とし_paramを渡す(_paramには渡したい値) // この時SecondViewControllerにて受け取る同型の変数を用意しておかないとエラーになる secondView._second = _param } } }
SecondViewController(受けたい値のView)
// // SecondViewController.swift // Segue for param // // Created by tarou yamasaki on 2015/02/04. // Copyright (c) 2015年 tarou yamasaki. All rights reserved. // import UIKit class SecondViewController: UIViewController { /// ラベルをアウトプット接続 @IBOutlet weak var _myLabel: UILabel! /// 遷移時の受け取り用の変数 var _second:String = "" /** インスタンス化された直後(初回に一度のみ) viewDiDLoad */ override func viewDidLoad() { super.viewDidLoad() // ラベルに受け取った遷移用の変数を渡す _myLabel.text = _second } /** memoryWarnig */ override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
一応コードの写真も載せときます
書いてないのはボタンとラベルぐらいです。
Sponsored Link
ツイート
SwiftにてprepareForSegueを使った画面遷移時の値の受け渡しの解説
大変参考になりました。
質問ですが、second画面からかmain画面に戻る時の値の受け渡しは、どのように設定すれば良いのでしょうか。
幼稚な質問で申し訳ありません。