【Swift4】UIViewController、タブ切り替え後戻ってきた時処理実行

謎のプリン語る。
プログラミングの役立つ情報とか、どうでもいい雑談とか書いてます。
一人書く人増えました。

【Swift4】UIViewController、タブ切り替え後戻ってきた時処理実行

みやびプリン 500 316

500 320

【Swift4】UIViewController、タブ切り替え後戻ってきた時処理実行 - サムネイル

※この記事は6年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。

どうも、やっと駐車場見つかりました!
やっとだよ、ほんとにないんだよ、札幌中央区!
50軒あたってやっとだよ。明らかに空いてるのに、空いてないって言い張られるし。
これでやっと車買える!

さて、ここまでにしといて・・・。

表記の件。
タブ切り替え時というよりは、
ViewControllerが切り替わって戻ってきた時、だ。
UIViewControllerが表示された直後に実行される関数は下記。

override func viewDidLoad() {
  super.viewDidLoad()
}

で、タブを一旦切り替え、また同じViewControllerに戻った時、
表示をリロードしたい、なんてことはよくあること。
しかし、このviewDidLoadメソッド、そのUIViewControllerが表示された一回目しか実行されない。
その後、タブ切り替えだろうが、Navigationで戻ってこようが、二度と実行されない。
つまりこのメソッドをもっかい実行するにはアプリを再起動するしかない。
じゃぁどうするかというと、
該当のUIViewControllerにくるたびに実行されるメソッドがあるので、それを使えばいい。

// viewDidLoadが完了時に実行
override func viewWillAppear(_ animated: Bool) {
  
}

// 完全に全ての読み込みが完了時に実行
override func viewDidAppear(_ animated: Bool) {
  
}

他にもいろいろ各タイミングで実行されるメソッドがありそうだが、
ここら辺詳しくは下記の記事参照のこと。

UIViewControllerのライフサイクル

そう、このメソッドの中に処理を書けば、
UIViewControllerにきた時に毎回実行させることができるってわけだ。

え、なに、それくらい常識だって?
すみませんね、初心者で・・・。
でも絶対、わからんってなってる人は多いはず!

さて、もう寝る。

トラックバック(0)

トラックバックURL:

コメントする

ページトップへ戻る