Xcode/Storyboardで、画面遷移の実装方法をアウトプットしてみようと思います。
#環境
・Mac Book Pro (macOS:Big Sur)
・Xcode(ver:12.5)
#画面遷移①(Storyboardのみ)
1.storyboardでController内のButtonからControllerにSegueをつなぐ。
2.ShowかPresent Modallyを選択
#画面遷移②(performSegueで遷移)
1.ViewController同士をSegueでつなぐ
2.ShowかPresent Modallyを選択
3.Segueのidentifierを付ける(下記のコードの場合は「next」)
4.画面遷移したいタイミングで下記のコードを書く
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func next(_ sender: Any) {
performSegue(withIdentifier: "next", sender: nil)
}
}
#画面遷移③(performSegue+prepareで値を渡して遷移)
1.ViewController同士をSegueでつなぐ
2.ShowかPresent Modallyを選択
3.Segueのidentifierを付ける(下記のコードの場合は「next」)
4.画面遷移したいタイミングで「performSegue」を書く
5.prepareで値を渡したい処理内容を書く
class ViewController: UIViewController {
var str = "画面遷移成功"
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func next(_ sender: Any) {
performSegue(withIdentifier: "next", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let nextVC = segue.destination as! NextViewController
nextVC.str = str
}
}
class NextViewController: UIViewController {
"値を受け取る変数を用意"
var str = String()
override func viewDidLoad() {
super.viewDidLoad()
}
}
#画面遷移④(NavigationController+ Storyboard IDで画面遷移)
1.ViewControllerを選択した状態で、Editor > Embed in > Navigation Controllerを選択
2.画面遷移するViewControllerのStoryboardIDを記述
3.Use Storyboard IDにチェックを入れる
4.下記のようにコードを書く
class ViewController: UIViewController {
var str = "画面遷移成功"
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func next(_ sender: Any) {
let nextVC = self.storyboard?.instantiateViewController(identifier: "nextVC") as! NextViewController
nextVC.str = str
self.navigationController?.pushViewController(nextVC, animated: true)
}
}
class NextViewController: UIViewController {
var str = String()
override func viewDidLoad() {
super.viewDidLoad()
print(str)
}
}
以上で、自分なりに画面遷移の方法をまとめてみました。
Udemyでメモしたコードを自分なりに理解してアウトプットしていこうと思います。