Help us understand the problem. What is going on with this article?

swift viewDidLoad時に画面遷移したい。

More than 1 year has passed since last update.

viewDidLoad時に画面遷移しようとして10分ぐらい困ってたので同じように困ってる方のための記録です。

viewDidLoadにそもそも画面遷移はできない。

viewDidLoadに画面遷移できない理由は「viewDidLoadとはまだviewを読みこむ処理」だから。
結論としてはviewDidAppearを使うことで画面表示時の画面遷移を行うことができる。

よくいろんな記事で以下のようなライフサイクルを見たことがあると思います。
llife.png
ふむふむ、なるほど。で、何故に画面遷移ができないの?って困った時にいろいろ調べていたら以下を見つけました。
 iOS開発におけるUIViewControllerのライフサイクルイベントまとめ
とても腑に落ちたのでまとめると、viewライフサイクルは、

①loadView
②viewDidLoad
③viewWillAppear
④viewWillLayoutSubviews
⑤viewDidLayoutSubviews
⑥viewDidAppear

⑦viewWillDisappear
⑧viewDidDisappear

大まかには以下のような意味になるので、

①Viewを読み込むよ
②Viewを読み込んだよ
③Viewを表示するよ
④View(SubViews)をうまい事配置するよ
⑤View(SubViews)をうまい事配置したよ
⑥Viewを表示したよ

⑦View消すよ
⑧View消したよ

⑥のviewDidAppearで初めて画面遷移等の処理を行うことが可能になる。
コードにすると以下のようになります。

viewDidLoad内に画面遷移を書き込んだ場合。
 override func viewDidLoad() {
        super.viewDidLoad()
        //ここに画面遷移処理を記述しても走らない。
    }

override func viewDidAppear(_ animated: Bool) {
         //ここに画面遷移処理を記述するときちんと走る。    
        }


自分なりにスッキリしました。viewDidLoad時にでも画面遷移の方法をご存知の方がいればコメントを下さい。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away