swiftとsegueで画面遷移のやりかた
iOSの開発で誰しもが困るポイント「画面遷移」
segueを使って実装したらかなり楽でした。 以下のようなやりかたで実現できます。
1. 遷移先のView Controller作成
storyboardからView Controllerをもう一つ作成しましょう
2. 遷移元のView Controllerと遷移先のView Controllerをsegueで接続
Ctrl + ドラッグで繋げられます。
僕は個人的に左の欄からつなげるのが好きです。(名前をよく知らない)
画面を直接ドラッグでひもづけるとうまくView Controllerを触れない僕がいました。
そうすると、以下の表示がでて、遷移のアニメーションを選択できるのでどれかを選びましょう。 僕は個人的にshowが好きです。
そうすると、以下のようにsegueで接続されます。
segueには、identifierを登録しましょう。遷移の際に必要になります。
3. 遷移のコードを記述します。
遷移元のView Controllerに以下のコードを記述すると、遷移が実行されます。
遷移させたいタイミングで記述しましょう。
//identifierを記述するところには、先ほど登録したsegueのidentifierを記述する performSegue(withIdentifier: "seguetest", sender: self)
また、遷移する際になにか処理をさせたい場合には、以下のコールバックメソッドにて処理を記述できます。
override func prepare(segue: UIStoryboardSegue, sender: Any?) { // 処理を実行したいsegueを指定 if segue.identifier == "seguetest"{ //遷移先のインスタンスをsegueから取り出す let nextViewController: hogehogeViewController = segue.destinationViewController as! hogehogeViewController //ここでいろいろ処理みたいなことをする } }
上記メソッドは、各View Controllerに一つしか書けないので、複数のsegue遷移がある場合は、if文などでsegueのidentifierを指定すると良いでしょう。
やはりstoryboardは優秀ですね。(こなみかん
追記 2019/03/12 swiftの文法が変わっていたので最新のものに修正