BETA

【Swift】UIStoryboardSegue をコードから呼んで画面遷移

投稿日:2020-03-25
最終更新:2020-03-25

本記事は2016年09月13日に Qiita に投稿した記事を移行したものです。

UIStoryboardSegue をコードから呼ぶ時の記述をメモ。
FirstViewController から SecondViewController へ画面遷移したいとする。

Storyboard で UIStoryboardSegue を作成

Storyboard で FirstViewController を Ctrl + ドラッグで SecondViewController へつなぐ。
identifier を設定しておく。ここでは toSecondViewController とする。

画面遷移したいタイミングで performSegue

画面遷移を行いたいタイミングで performSegue を呼ぶ。


class FirstViewController: UIViewController {  

    // Anything...  

    func segueToSecondViewController() {  
        self.performSegue(withIdentifier: "toSecondViewController", sender: nil)  
    }  

}  

画面遷移先に何かしらを受け渡したい場合

performSeguesender 引数は Any? 型。
画面遷移先に何かしらを受け渡したい場合は sender にセットし、以下のようにする。


class FirstViewController: UIViewController {  

    let parameters = ["hello": "こんにちは", "goodbye": "さようなら"]  

    // Anything...  

    func segueToSecondViewController() {  
        self.performSegue(withIdentifier: "toSecondViewController", sender: self.parameters)  
    }  

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {  
        if segue.identifier == "toSecondViewController" {  
            let secondViewController = segue.destination as! SecondViewController  
            secondViewController.parameters = sender as! [String : String]  
        }  
    }  

}  

sender のダウンキャストの時に、画面遷移先と型が一致するようにする。


class SecondViewController: UIViewController {  

    var parameters: [String : String] = [:] // 画面遷移後は ["hello": "こんにちは", "goodbye": "さようなら"]  

    // Anything...  
}  

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

treastrain / Tanaka Ryoga の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう