異なるstoryboard間の画面遷移

Storyboard Reference 使用する
- storyboardを作成する。
遷移元、遷移先があればOK
-
遷移元のstoryboard上に、Storyboard Referenceを追加する。
ドラッグ&ドロップで、遷移元のstoryboardの近くに置くと設定しやすい。
-
2でセットしたStoryboard Referenceを選択し、
Attributes Inspector > Storyboard Reference > Storyboard
に遷移元のstoryboardを設定する。 -
ボタン押下で遷移する場合は、対象のボタンから
ctrl + ドラッグ
で 2でセットしたStoryboard Referenceと紐付ける。 -
Action Segueから、適当なものを選択する。(showが基本らしい)
-
遷移先のstoryboardのIs Initial View Controllerにチェックが入っているか確認する。
次画面がUINavigationControllerの場合
prepare
で画面遷移する
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// destinationをUINavigationControllerにキャストしてインスタンス化
let navVC = segue.destination as! UINavigationController
// navigationControllerのtopViewControllerを遷移したいViewControllerでインスタンス化
let editItemVC = navVC.topViewController as! EditItemViewController
// パラメータなどがあればここで渡す
editItemVC.itemId = sender as? Int
}
Storyboard名とidentifierで遷移
※ここでは、ボタンタップで画面遷移
@IBAction func tabCreateNewShoppingListButton(_ sender: Any) {
var sb: UIStoryboard! = UIStoryboard(name: "CreateNewShoppingList", bundle: nil)
var identifier: String! = identifier = "createNewShoppingList"
let nv = sb.instantiateViewController(withIdentifier: identifier)
self.present(nv, animated: true, completion: nil)
}