Storyboardで設定できる画面遷移は非常に限られていて、アプリを少し作り込んでいくとプログラム的に別Viewに遷移したくなることがよくあります。
そんなときは、Storyboard上で工夫するのではなく、素直にコードで画面遷移させてしまうのが簡単です。
StoryBoardに設定してあること/前提
- 現在のViewController上の何らかのタイミングで呼ばれる関数内で使用(ボタンクリックとか)
- 使っているStoryboardは、"Main.storyboard" (Wizard使ってプロジェクトを作ったのであればおそらく同じ名前)
- 遷移先のViewControllerは、"SelectionViewController"というStoryboardIDで登録されている。そのViewControllerは、UIViewControllerそのものではなく、子クラスかしていてももちろんOK
let storyboard = UIStoryboard.init(name: "Main", bundle: nil) let destViewController = storyboard.instantiateViewController(identifier: "SelectionViewController") as! SelectionViewController self.present(destViewController, animated: true, completion: nil)
手順1
Storyboardを読み込む
まずは、ファイル名指定してStoryboardを読み込みます。
手順2
ViewControllerを読み込む
手順1で読み込んだStoryboardから、ViewControllerを読み込んで、インスタンス化します。
手順3
インスタンス化したViewControllerへ遷移
presentメソッドを使って遷移
完成
新しいUIViewController/UIViewへ遷移完了
ほとんど、定型文だけど、自分で書かなければいけないのが少し面倒かも。
Sponsor Link