56
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

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個戻るというようなことも簡単です。

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

56
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?