segueを使わずにstoryboard上のViewControllerにアクセスする。
アクセス対象のViewControllerのIdentifierを定義した上で、storyboard?.instantiateViewController()
を使用してインスタンスを取得できる。
override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "next") as! NextViewController present(nextViewController, animated: true, completion: nil) }
また、上記をviewDidLoad内で書いたとき
override func viewDidLoad() { super.viewDidLoad() let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "next") as! NextViewController present(nextViewController, animated: true, completion: nil) }
このようなエラーが出ることがある。
whose view is not in the window hierarchy!
viewDidLoad時のタイミングでは他のViewControllerにアクセスできないようなので、viewDidAppearで遷移すればよい。
リンク
リンク