前の記事ではStoryboard上で簡単にViewControllerを移動していましたが、今度はコードで移動してみます。
Contents
新しく遷移先の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だけ書けばよいということなのかな?