ライフサイクル他にもある?
前回起動時のライフサイクルをみてきました。
人生山があれば谷があります。iOSのライフサイクルにも終了のライフサイクルがあります。
画面が変わるとき
サンプルアプリのSecondタブをタップすると画面がSecondViewControllerに切り替わります。
このときにFirstViewControllerの画面表示終了に向けてのライフサイクルが発動します。画面の切り替え時の処理などはここで記述します。
アプリ停止
ホームボタンをタップしてみてください。ご存知のようにアプリが終了します。ただし注意してください、アプリは閉じますが終了したわけではありません。バックグラウンドで待機した状態になったにすぎません。
この時のライフサイクルです。
完全にアプリを終了するにはどうするのでしょう?
ホームボタンを2度押しすると起動中のアプリ一覧が表示されます。ここから削除して初めてアプリが終了したことになります。プロセスやタスクを切るなどと表現します。
これに関係して、タスクが切られると画面の情報が削除されてしまいます。そこで設定中の検索条件など一時保存したい画面情報を保持しておく手段が用意されています。State Restorationです。
常に使う共通のパラメータなどは別途保存するようにし、一時的な保存を画面で行うと、ユーザーにとって優しいアプリになります。(実際そこまで気を配ったアプリは少ないかもしれません)
そうそう様々なメソッドがありますが、年をとると忘れることもしばしば(笑)
そんなときは知りたいメソッドの上にカーソルをもっていき、Control+Commandボタンを押しながらクリックしてみましょう。そのメソッドにジャンプします。