【Xcodeのお勉強】コードを使ってSegueを実装してみた

前の記事ではStoryboard上で簡単にViewControllerを移動していましたが、今度はコードで移動してみます。

【Xcodeのお勉強】セグエでシーンを移動する

新しく遷移先のView Controllerを用意し、画像を配置する

一旦ここまでは前回の記事にも書いてあるので省略。また、注意する点としてcatボタンを置いたStoryboardにIDを振っておく。

コードを書いて遷移させる

catボタンをActionで繋ぎ以下のコードを記述する

@IBAction func gotoCat(_ sender: UIButton) {
//移動先のビューコントローラー
let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "catPage")
//トランジションの効果指定
nextVC?.modalTransitionStyle = .flipHorizontal
//シーンを移動する
present(nextVC!, animated: true, completion: nil)
}

これでcatボタンをタップすると画面が遷移できるようになった。

戻る用のコードを書くために.swiftファイルを用意する

今はMain.Storyboard内に一番最初に作ったViewControllerのViewController.swiftファイルしかないので、猫の画像が配置されているViewController用に新しくファイルを作成する。

File>New>FileでCocoa Touch Classを選択する

ClassにCatPageViewControllerと名付け、SubClassにはUIViewControllerをつける。

シーンにカスタムクラスを紐付ける

Custom Classの欄に先ほど名付けたCatPageViewControllerを選択すると紐付けられる。

戻るボタンのActionを紐付ける

先ほどと同様に戻るボタンをクリックしControlボタンを押しながらコードにペーストする。

戻る用のコードを記述する

@IBAction func backHome(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}

完成

これでどうやってViewControllerに.swiftファイルを紐付けるか、カスタムクラスを作成するかを勉強できた。presentの時には遷移先を指定する必要があったけどdismissの時には自分自身を消す、selfだけ書けばよいということなのかな?

この記事が気に入ったら
いいね ! しよう