Swift画面遷移 NavigationControllerでの全く別のStoryboadへ遷移

ポイント1 NavigationControllerを利用している場合、pushする。

ポイント2 目的のViewへcastすること

//actionで遷移 clousure
let addSubtaskAction = UIAlertAction(title: "Add SubTask", style: .default) { action in

            // Show another storyboard
            let addTaskStoryBoad = UIStoryboard(name: "AddTask", bundle: nil)

//castが必用
            let addTaskView = addTaskStoryBoad.instantiateInitialViewController() as? AddTaskController

//遷移先の変数へ値をセット
            addTaskView?.todo = todo

//navigationViewはpushする。viewを配列で持っているため
            self.navigationController?.pushViewController(addTaskView!, animated: true)
        }

f:id:happy_teeth_ago:20210810132350p:plain

func instanceiateInitialViewController()-> UIViewController?

すべてのストーリーボードファイルには、作成するデフォルトのViewControllerを表す初期ViewControllerがある。