Help us understand the problem. What is going on with this article?

Swiftでの画面遷移についてまとめ

More than 1 year has passed since last update.

よく忘れるのでメモとしてまとめる

Storybordだけで画面遷移

スクリーンショット 2017-08-01 9.21.18.png

シンプルな画面遷移。
ボタンと次に表示するViewControllerをsegueで繋げるだけで完了

コードから画面遷移

画面遷移したいタイミングで下記のコードを追加する

let storyboard = self.storyboard!
let nextView = storyboard.instantiateViewController(withIdentifier: "viewcontroller2")
self.present(nextView, animated: true, completion: nil)

withIdentifierにはViewControllerのIdentifyで設定した名前を書く

スクリーンショット 2017-08-01 9.36.05.png

NavigationControllerで画面遷移

NavigationControllerを下記の手順で追加する

Editor → Embed In → NavigationController

追加したらStoryBoardだけで画面遷移で書いたのと同じようにsegueでViewController同士をつなげれば完了

スクリーンショット 2017-08-01 9.43.03.png

NavigationControllerを使ってコードで画面遷移

方法1 performSegueを使う

①遷移元のViewControllerの黄色のボタンから遷移先のViewControllerへドラッグ&ドロップしてsegueで繋げる

スクリーンショット 2017-08-01 21.12.18.png

②segueを選択し、Identifierを設定する

③画面遷移させたいときに下記のコードを追加する

performSegue(withIdentifier: "Test", sender: nil)

この方法は遷移するViewControllerが2個程度と少ない場合に使っている

方法2 PushViewControllerを使う

let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "Test") as! SecoundViewController
        self.navigationController?.pushViewController(secondViewController, animated: true)

Testの箇所には遷移先のStoryboardIdに設定した値を入力

スクリーンショット 2017-08-01 21.36.21.png

SecoundViewControllerは遷移先Storybordに設定したViewControlerを書く

スクリーンショット 2017-08-01 21.37.28.png

ちなみに、コードで戻る時は下記のコードでできる

_ = navigationController?.popViewController(animated: false)

この方法はnavigationControllerを配列にして管理することができるので
一気に2個戻るというようなことも簡単です。

他にも画面遷移する方法はたくさんありますが、自分がよく使うものをメモとして残しておきます。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away