画面遷移の実装方法まとめ[Xcode/Storyboard]


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.画面遷移したいタイミングで下記のコードを書く

ViewController.swift
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で値を渡したい処理内容を書く

ViewController.swift
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
    }

}
NextViewController.swift
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.下記のようにコードを書く

ViewController.swift
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)
    }
}
NextViewController.swift
   class NextViewController: UIViewController {

    var str = String()

    override func viewDidLoad() {
        super.viewDidLoad()

      print(str)
    }
}

以上で、自分なりに画面遷移の方法をまとめてみました。

Udemyでメモしたコードを自分なりに理解してアウトプットしていこうと思います。