LoginSignup
0
1

More than 3 years have passed since last update.

ViewDidLoad()って実際なにしてるかわからないから、ざっくりまとめる

Last updated at Posted at 2021-02-16

いろんな部品を配置して〜viewDidLoad()の中に処理を書いていけば、、

はい〜簡単なアプリの出来上がり!

ってな感じでUmedyや教本をみながら色々と作ってますが・・・

いやはや、毎回最初に準備されてるから意識してなかったけど、

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

って具体的にはなにしてるの?

と初歩的なところに疑問をもってしまったので調べたことをアウトプットするために書いていこうと思います。

これからも、いろんな記事をアウトプットで書いていく予定です。
そのたびに、この文言は毎回入れます・・・・・
「間違ってたら教えて下さい!!」笑
むしろそれが目的でもあります。では、、、スタート

viewDidLoad()ってなんだ?

見た目通り、メソッドです。
ViewControllerの親クラスである、UIViewControllerクラスに定義されているメソッドで
それをオーバーライドして上書きしています。

オーバーライドするということは、中身を全て書き換えることになります。
しかし、UIViewControllerクラス(親)のviewDidLoad()にはアプリを立ち上げるためにとても重要な処理が書かれています。

このままだと、アプリが動かない!!!
そのために、メソッドの一番最初に

super.viewDidLoad()

を書いているんですね。
こうすることで、親クラスの重要な処理が実行され無事にアプリの立ち上げに成功することになります。

どんなタイミングで動くのか

このメソッドは、UIViewControllerクラスのViewプロパティがロードされたタイミングで呼ばれます。つまり、「アプリのアイコンがタッチされた」時に動くメソッドですね!

ただし、すでにバックグランドで動いている場合は除きます。
なぜかというと、バックグラウンドで動作しているアプリはViewプロパティがすでにメモリ上にロードされています。改めてタッチしたところでViewプロパティがロードされることはないために再びこのメソッドの処理が動くことはありません。

いつ動いて、どんなタイミングだと呼ばれないのかを知っておくこともアプリ開発では基本として重要かもしれません

どんな処理を書けばいいのか

まず、処理の最初に必ず書かなければいけないものがあります。

さきほども、お伝えした通り親クラスのVieDidLoad()には重要な処理がかかれています。
そのため、

super.viewDidLoad()

を必ず書きましょう。
プロジェクトを立ち上げると自動で書かれているので、意識する必要はありません。

全部消して1から書いてやるぜ!!みたいなファンキーモンスターじゃない限り大丈夫だと思います。

次に、"viewプロパティがメモリにロードされたタイミング"でおこないたい処理を書いていきます。

難しくいっていますが

・プロパティの記述
・特定の処理を付与する

など、思うがままに処理を書いていけばいいです。

まとめ

ざっくりですが、いまわかることを書いてみました。上級者ともなると親クラスに書かれている重要な処理ですら理解していると思いますが現段階では理解する必要はないかなと勝手に思っています。(うごけばいいんだっ!)

将来的には、しっかりと理解した上で追記していきたいと思いました。

こんな拙い記事を最後まで読んでいただいた方がいらっしゃったら感謝します!
分かりにくい部分、追記した方がいい部分あれば教えてください!

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1