UIStoryboardSegue
をコードから呼ぶ時の記述をメモ。
FirstViewController
から SecondViewController
へ画面遷移したいとする。
Storyboard で UIStoryboardSegue
を作成
Storyboard で FirstViewController
を Ctrl + ドラッグで SecondViewController
へつなぐ。
identifier
を設定しておく。ここでは toSecondViewController
とする。
画面遷移したいタイミングで performSegue
画面遷移を行いたいタイミングで performSegue
を呼ぶ。
FirstViewController.swift
class FirstViewController: UIViewController {
// Anything...
func segueToSecondViewController() {
self.performSegue(withIdentifier: "toSecondViewController", sender: nil)
}
}
画面遷移先に何かしらを受け渡したい場合
performSegue
の sender
引数は Any?
型。
画面遷移先に何かしらを受け渡したい場合は sender
にセットし、以下のようにする。
FirstViewController.swift
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
のダウンキャストの時に、画面遷移先と型が一致するようにする。
SecondViewController.swift
class SecondViewController: UIViewController {
var parameters: [String : String] = [:] // 画面遷移後は ["hello": "こんにちは", "goodbye": "さようなら"]
// Anything...
}