Swift勉強2日目、自分用の備忘録です。
Swiftで画面遷移をする方法は以下の3つ。
①ボタンを押して遷移(ノーコード)
②セグエで遷移
③ナビゲーションコントローラーで遷移
①ボタンを押して遷移(ノーコード)
ボタンをcontrol押しながら遷移先のVCにドラッグ&ドロップ
②セグエで遷移(値を渡さない時)
- セグエにIdentifierを付与
- コードを実装
// 遷移
performSegue(withIdentifier: "next", sender: nil)
②セグエで遷移(値を渡す時)
- セグエにIdentifierを付与(Storyboard Segue)
- コードを実装
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// 遷移先のVCを変数にいれる
let nextVC = segue.destination as! NextViewController
// 遷移先のVCの変数(count)に渡したい値をいれる
nextVC.count = "foo"
}
// 遷移
performSegue(withIdentifier: "next", sender: nil)
③ナビゲーションコントローラーで遷移
-
Editor > Embed In > Navigation Controller
からナビゲーションコントローラーを追加 - 遷移先のビューコントローラーにStoryboard IDを付与
- コードを実装
// 遷移先のVCを変数に代入
let nextVC = storyboard?.instantiateViewController(withIdentifier: "next") as! NextViewController
// (遷移先のVCの変数(todoString)に値を代入)
nextVC.todoString = ""
// 遷移
navigationController?.pushViewController(nextVC, animated: true)
戻るボタン
@IBAction func back(_ sender: Any) {
dismiss(animated: true, completion: nil) // この一行でOK
}