【Swift/iOS】Segueを使った画面遷移

Segueとは、storyboard上で画面遷移を表す部品です。

この記事では、Segueを使った2種類の画面遷移方法を解説します。

  • ノンコーディングでお手軽に遷移するAction Segue
  • コード上の任意のタイミングで画面遷移させるManual Segue

尚、遷移先画面が別のstoryboardにある場合などは、Segueを使う事ができません。

Segue使わない画面遷移の方法はこちらの記事を御覧ください。

【Swift/iOS】Segueを使わない画面遷移
(2019/04/07 更新)Segueを使わないで画面遷移をする方法を解説します。異なるstoryboard上にあるViewControllerに遷移するなどの場合はSegueが使えませんので、必然的にこちらの方法を使う事になります。...
スポンサーリンク

環境

この記事の情報は次のバージョンで動作確認しています。

【Swift】Version 4.2.1 
【Xcode】Version 10.1
【iOS】12.1.4

ノンコーディングのお手軽画面遷移(Action Segue)

Segueの追加

storyboard上で遷移元画面(View1)のNextボタンを右クリックしたまま遷移先画面(View2)まで移動し、マウスを離すとSegue選択メニューが開くのでPresent Modallyを選択。

図:Segueの追加その1

Present Modallyは元の画面の上に新しいモーダル画面を重ねて表示する遷移方法です。通常の画面遷移にはこれを指定します。

すると、次のように画面間をつなぐSegueが追加されます。

図:追加されたSegue

これだけで、Nextボタンを押すとView2に遷移する処理がノンコーディンで実装できます。

任意のタイミングでの画面遷移(Manual Segue)

Segueの追加

遷移元画面(View1)の上の「ViewControllerアイコン」をマウスで右クリックしたまま、遷移先画面(View2)まで移動。マウスを離すとSegue選択メニューが開くので、Present Modallyを選択すると、画面間をつなぐSegueが追加されます。

図:Segueの追加その2

Segueの識別子(identifier)を設定

追加されたSegueに任意の名前(Identifer)をつけます。 コードから使用する為の識別子として必要になります。値はなんでもかまいませんが、ここでは”toNext”としました。

図:Segueに名前を付ける

画面遷移のコードを記述

画面遷移をしたい箇所で、次のようなコードを記述します。 withIdentifierには、先程設定したSegueの識別子を指定します。

ボタン押下Actionイベントに記述すれば、ボタン押下で画面遷移します。

Navigation Controller 管理下での画面遷移の場合

Navigation Controller管理下での画面遷移の場合は、Segueの種類指定でPresent Modallyの代わりにShowを選択します。

この時、Present Modallyを選択するとNavigation Controllerの管理下からは外れて、モーダル型の画面遷移となりますので注意して下さい。もちろん、あえてそうするのも可能です。

ちなみに、Navigation Controller管理下でない時にShowを選択しても、ナビゲーション付きにはならずPresent Modally選択時と同じ動作になります。

Navigation Controllerについては、こちらの記事を参照して下さい。

【Swift/iOS】ナビゲーションコントローラーの使い方
iOSアプリではよく見かけるNavigation Controllerの使い方を解説します。

遷移元画面に戻るには?

遷移元画面に戻る方法は、こちらの記事を参照してください。

【Swift/iOS】遷移元画面への戻り方
遷移元画面へ戻る方法について解説します。モーダル型の通常の画面遷移と、Navigation Controller管理下での階層型画面遷移では、戻り方が違いますので注意して下さい。

画面遷移時のアニメーションを変更するには?

Present Modallyで画面遷移した場合は、遷移時のアニメーションを変更する事が可能です。

画面遷移時のアニメーションを変更する方法は、こちらの記事を参照して下さい。

【Swift/iOS】画面遷移時のアニメーション指定方法
モーダル表示タイプの一般的な画面遷移での画面表示アニメーションの指定方法を解説します。SegueのPresent Modallyを使った画面遷移、あるいはSegueを使わずにpresentメソッドで行った画面遷移がこれに該当します。

まとめ

  • Segueを使った画面遷移には、Action SegueとManual Segueの2種類ある。
  • Manual Segueを使う場合、画面遷移時にコードでperformSegue()メソッドを呼ぶ。
  • Segueの種類指定で通常はPresent Modallyを選択するが、Navigation Controller管理下ではShowを選択する。

コメント