UKey's Labo

異なるstoryboard間の画面遷移

Storyboard Reference 使用する

  1. storyboardを作成する。

    遷移元、遷移先があればOK

  2. 遷移元のstoryboard上に、Storyboard Referenceを追加する。

    ドラッグ&ドロップで、遷移元のstoryboardの近くに置くと設定しやすい。 storyboard_reference_01.png (69.2 kB)

  3. 2でセットしたStoryboard Referenceを選択し、 Attributes Inspector > Storyboard Reference > Storyboardに遷移元のstoryboardを設定する。 storyboard_reference_02.png (10.4 kB)

  4. ボタン押下で遷移する場合は、対象のボタンからctrl + ドラッグで 2でセットしたStoryboard Referenceと紐付ける。

  5. Action Segueから、適当なものを選択する。(showが基本らしい)

    storyboard_reference_03.png (20.3 kB)

  6. 遷移先の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)
    }