Segueとは、storyboard上で画面遷移を表す部品です。
この記事では、Segueを使った2種類の画面遷移方法を解説します。
- ノンコーディングでお手軽に遷移するAction Segue
- コード上の任意のタイミングで画面遷移させるManual Segue
尚、遷移先画面が別のstoryboardにある場合などは、Segueを使う事ができません。
Segue使わない画面遷移の方法はこちらの記事を御覧ください。
環境
この記事の情報は次のバージョンで動作確認しています。
【Xcode】Version 10.1
【iOS】12.1.4
ノンコーディングのお手軽画面遷移(Action Segue)
Segueの追加
storyboard上で遷移元画面(View1)のNextボタンを右クリックしたまま遷移先画面(View2)まで移動し、マウスを離すとSegue選択メニューが開くのでPresent Modallyを選択。
すると、次のように画面間をつなぐSegueが追加されます。
これだけで、Nextボタンを押すとView2に遷移する処理がノンコーディンで実装できます。
任意のタイミングでの画面遷移(Manual Segue)
Segueの追加
遷移元画面(View1)の上の「ViewControllerアイコン」をマウスで右クリックしたまま、遷移先画面(View2)まで移動。マウスを離すとSegue選択メニューが開くので、Present Modallyを選択すると、画面間をつなぐSegueが追加されます。
Segueの識別子(identifier)を設定
追加されたSegueに任意の名前(Identifer)をつけます。 コードから使用する為の識別子として必要になります。値はなんでもかまいませんが、ここでは”toNext”としました。
画面遷移のコードを記述
画面遷移をしたい箇所で、次のようなコードを記述します。 withIdentifierには、先程設定したSegueの識別子を指定します。
1 2 3 |
performSegue(withIdentifier: "toNext", sender: nil) |
ボタン押下Actionイベントに記述すれば、ボタン押下で画面遷移します。
Navigation Controller 管理下での画面遷移の場合
Navigation Controller管理下での画面遷移の場合は、Segueの種類指定でPresent Modallyの代わりにShowを選択します。
この時、Present Modallyを選択するとNavigation Controllerの管理下からは外れて、モーダル型の画面遷移となりますので注意して下さい。もちろん、あえてそうするのも可能です。
ちなみに、Navigation Controller管理下でない時にShowを選択しても、ナビゲーション付きにはならずPresent Modally選択時と同じ動作になります。
Navigation Controllerについては、こちらの記事を参照して下さい。
遷移元画面に戻るには?
遷移元画面に戻る方法は、こちらの記事を参照してください。
画面遷移時のアニメーションを変更するには?
Present Modallyで画面遷移した場合は、遷移時のアニメーションを変更する事が可能です。
画面遷移時のアニメーションを変更する方法は、こちらの記事を参照して下さい。
まとめ
- Segueを使った画面遷移には、Action SegueとManual Segueの2種類ある。
- Manual Segueを使う場合、画面遷移時にコードでperformSegue()メソッドを呼ぶ。
- Segueの種類指定で通常はPresent Modallyを選択するが、Navigation Controller管理下ではShowを選択する。