LoginSignup
2
7

More than 5 years have passed since last update.

iOSアプリのコード上での画面遷移

Last updated at Posted at 2017-04-28

はじめに

iOSアプリ開発中にコード上で任意のタイミングで画面遷移したかったので調べたときのメモ

状態

遷移元のclass LoginViewController
遷移先のclass WebViewController

コード上で操作

1. Storybordから遷移先のViewControllerにidentifierを付加:webView
2. ↓のコードを遷移したいポイントに書く

LoginViewController.swift
let storyboard: UIStoryboard = self.storyboard!
let webView: WebViewController = storyboard.instantiateViewController(withIdentifier: "webView") as! WebViewController
self.present(webView, animated: true, completion: nil)

segueを使った遷移をコードで書く

1. Storybordで遷移元のViewControllerから遷移先のViewControllerへsegueを登録? (ctrl押してドラッグ)
2. segueにidentifierを付加: toWebView 
3. ↓のコードを遷移したいポイントに書く

LoginViewController.swift
self.performSegue(withIdentifier: "toWebView", sender: nil)

値の受け渡しをしたい場合

以下の作業を追加
1. performSegue()のsenderに渡したい値を追加して、遷移先に受け取るための変数を宣言
2. 遷移元でprepare関数?をoverride
例えば配列を渡したいとき

LoginViewController.swift
self.performSegue(withIdentifier: "toWebView", sender: ["HOGE": "hoge"])

・・・

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "toWebView" {
        let webView = segue.destination as! WebViewController
        webView.param = sender as! [String : String]
    }
}
WebViewController.swift
class WebViewController: UIViewController {
    var param: [String: String] = [:]

 ・・・

}
2
7
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
2
7