Swiftでの画面遷移についてまとめ

よく忘れるのでメモとしてまとめる

Storybordだけで画面遷移

スクリーンショット 2017-08-01 9.21.18.png

シンプルな画面遷移。 ボタンと次に表示するViewControllerをsegueで繋げるだけで完了

コードから画面遷移

画面遷移したいタイミングで下記のコードを追加する

let storyboard = self.storyboard!
let nextView = storyboard.instantiateViewController(withIdentifier: "viewcontroller2")
self.present(nextView, animated: true, completion: nil)

withIdentifierにはViewControllerのIdentifyで設定した名前を書く

スクリーンショット 2017-08-01 9.36.05.png

NavigationControllerで画面遷移

NavigationControllerを下記の手順で追加する

Editor → Embed In → NavigationController

追加したらStoryBoardだけで画面遷移で書いたのと同じようにsegueでViewController同士をつなげれば完了

スクリーンショット 2017-08-01 9.43.03.png

NavigationControllerを使ってコードで画面遷移

方法1 performSegueを使う

①遷移元のViewControllerの黄色のボタンから遷移先のViewControllerへドラッグ&ドロップしてsegueで繋げる

スクリーンショット 2017-08-01 21.12.18.png

②segueを選択し、Identifierを設定する

③画面遷移させたいときに下記のコードを追加する

performSegue(withIdentifier: "Test", sender: nil)

この方法は遷移するViewControllerが2個程度と少ない場合に使っている

方法2 PushViewControllerを使う

let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "Test") as! SecoundViewController
        self.navigationController?.pushViewController(secondViewController, animated: true)
        

Testの箇所には遷移先のStoryboardIdに設定した値を入力

スクリーンショット 2017-08-01 21.36.21.png

SecoundViewControllerは遷移先Storybordに設定したViewControlerを書く

スクリーンショット 2017-08-01 21.37.28.png

ちなみに、コードで戻る時は下記のコードでできる

_ = navigationController?.popViewController(animated: false)

この方法はnavigationControllerを配列にして管理することができるので 一気に2個戻るというようなことも簡単です。

他にも画面遷移する方法はたくさんありますが、自分がよく使うものをメモとして残しておきます。