【Swift】画面遷移しながら値を渡す方法2
完成図
解説
・前回の記事では、performSegueとprepareによる画面遷移を実装した
↓
・今回は、performSegueとprepareを使わずに画面遷移を行う
・self.storyboard?.instantiateViewControllerで遷移先のインスタンスを取得
・インスタンス.変数 = 値、で値を渡す
・self.navigationController?.pushViewControllerで遷移
※注意点
・今回の遷移は、遷移元がNavigationControllerを継承している必要がある
・遷移先のViewControllerのStoryBoardID と withIdentifierを一致させる必要がある
ストーリーボード
ソースコード
import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextField! @IBAction func button(_ sender: Any) { //遷移先のインスタンス //ユーティリティエリアで設定したStoryBoardIDをwithIdentifierに設定 let vc2 = self.storyboard?.instantiateViewController(withIdentifier: "next") as! ViewController2 //ViewController2のtextにtextFieldのテキストを代入 vc2.text = textField.text! //NavigationControllerを継承したViewControllerを遷移 self.navigationController?.pushViewController(vc2, animated: true) } }
import UIKit class ViewController2: UIViewController { @IBOutlet weak var label: UILabel! var text = String() override func viewDidLoad() { super.viewDidLoad() label.text = text } }