はじめに
UIViewControllerのviewDidLoad
で画面遷移したい!と思って色々調べたのでメモします。
結論
結論から言うと、viewDidLoad()
内での画面遷移はできません!
じゃあどうすればいいのかというと、viewDidAppear(_ animated: Bool)
を使用します。
そもそもviewDidLoadとは、画面の読み込みが完了した後
に呼ばれるメソッドなので、そこで画面遷移をしようとしても遷移する画面が無いのでできないわけです。
そこで、viewDidAppearの登場です!
viewDidAppearとは、画面が表示された後
に呼ばれるメソッドです。
そのため、以下のようにメソッドを追加して画面遷移の処理を書くことで、既に遷移される画面は存在した状態で処理が走るので遷移可能というわけです!
viewDidAppear追加
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
//ここに画面遷移する処理を記述する。
}