[iPhone] Segueで画面遷移させる

アプリでA画面からB画面に遷移したいケースは結構あります。コードで記述せざる得ない場合もありますが、StoryboardでSceneを作っているならばSegueで簡単にできます。
 

segue_01
segue_02

Swift 3.0
Xcode 8.0

 

sponsored link

Segue 画面遷移

 
Segueを簡単に使ってみます。試す内容は以下の2つ
– Segueによる画面遷移
– 画面遷移に合わせてメッセージを送る

また、手順としては
1. 遷移先の ViewController を作成
2. ButtonとViewControllerをSegueで接続
3. 新しい ViewControllerクラスを作成
4. Buttonがタップされ遷移先に文字を送るコーディング

 

1. 遷移先の ViewController を作成

 
Single Application を作成
Storyboard に新しく View Controller を作ります

スクリーンショット 2016-01-25 19.54.45

画面遷移をトリガーするためのButtonを置きます。

screen-shot-2016-09-23-at-14-58-13

 

2. BottonとView ControllerをSegueで接続

 
Buttonを右クリックしてactionの+をつかんで遷移先の View Controller に持っていき離します。すると選択肢が現れるので Present Modally を選びます。
 
segue_1
 
それぞれの選択肢の意味合いは

  • Show
    UINavigationControllerの画面遷移で画面間に関連性があり「次」「戻る」などに使う。
  • Show detail
    UISplitViewControllerのケースで、Master viewとDetail viewの画面遷移を表示
  • Present modally
    現在のviewの上に覆いかぶさるように新しいviewを表示
  • Present As Popover 
    現在の画面の上にポップアップviewを表示

2つの View Controllerの間にSegue が現れます。
 
screen-shot-2016-09-23-at-15-14-11
 
実は画面遷移だけであれば、このボタンタップのみで行えます。但しデータを遷移先に送るには次の設定が必要になります。

 

3. 新しい ViewControllerクラス を作成

 
Segue を選択し、Identifier を「toViewController2」とします。
 
スクリーンショット 2016-01-25 20.07.07
 
遷移元のView Controller SceneはViewController.swiftでコーディングできますが、新しく作成したView Controller Sceneはswiftファイルが無いのでこれも新しく作ります。

プロジェクトを選択し右クリックで「New File」を選びます。
 
スクリーンショット 2016-01-25 20.10.56
 
iOS -> Source->Cocoa Touch Class を選択
 
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-19-22-00-37
 
Subclass は UIViewController とし、新しいクラス名を ViewController2 と入力
LanguageはSwiftです
 
スクリーンショット 2016-01-25 20.12.56
 
ViewController2 のファイルが出来上がる
これを適当にViewController.swiftの下あたりに移動

スクリーンショット 2016-01-25 20.13.45
 
Storyboardで新しく作った View Controller を選択して、Custom Class からこの ViewController2 を選んで関連付けします
 
スクリーンショット 2016-01-25 20.14.49

 

4. Buttonがタップされ遷移先に文字を送るコーディング

 
遷移先のView Controller Sceneに遷移元の文字を受け取り表示させるためのLabelを置きます。また遷移元に戻るButtonを作り、Present Modallyで結びます。更に、遷移がわかりやすいように背景色を設定しておきます。
 
screen-shot-2016-09-23-at-15-32-36
 
ボタンタップに合わせてSegueのIDを指定してperformSegueを設定します。

 
prepareで遷移先にあるString変数に文字をセットします。

まとめると
ViewController.swift

遷移先
ViewController2.swift

 

Build 実行

 

Buildして実行、タップすると画面遷移して”to VC2″が表示されれば成功です。

simulator-screen-shot-sep-23-2016-15-44-33
simulator-screen-shot-sep-23-2016-15-44-38