スポンサーリンク

【Swift】UIViewController ライフサイクル 簡易説明書 | ポケットリファレンス サンプル付き

ライフサイクル

ビューコントローラにて画面表示時に呼び出されるメソッドのライフサイクルになります。
下記の順番にて呼び出されますので必要に応じてオーバーライドします。

サンプル

// Life Cycle

// UI 部品を View へセットする場合はこちらをオーバーライドします。
// ただし、UI 部品のセットはこのメソッドでなくても問題ありません。
override func loadView() {
    super.loadView()
    print("loadView")
}

// 初期表示時に必要な処理を設定します。
override func viewDidLoad() {
    super.viewDidLoad()
    print("viewDidLoad")
}

// 画面に表示される直前に呼ばれます。
override func viewWillAppear(animated: Bool) {
    super.viewDidDisappear(animated)
    print("viewWillAppear")
}

// 画面に表示された直後に呼ばれます。
override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    print("viewDidAppear")
}

// 画面から非表示になる直前に呼ばれます。
override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    print("viewWillDisappear")
}

// 画面から非表示になる直後に呼ばれます。
override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)
    print("viewDidDisappear")
}


// メモリーが不足にてインスタンスが破棄される直前に呼ばれます。
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    print("didReceiveMemoryWarning")
}

実行ログ

画面1表示 → 画面2へ遷移 した場合

画面1 loadView
画面1 viewDidLoad
画面1 viewWillAppear
画面1 viewDidAppear

画面2へ遷移実行

画面2 loadView
画面2 viewDidLoad
画面1 viewWillDisappear
画面2 viewWillAppear
画面2 viewDidAppear
画面1 viewDidDisappear

各オーバーライドメソッドの説明

loadView

xib を利用せず、コード内にて View を作成する場合はオーバーライドします。
コード内にて View を作成する場合はこちらにコーディングしましょう。
ただし、UI 部品のセットはこのメソッドでなくても問題ありません。

viewDidLoad

xib 読み込み UI 生成後に呼ばれます。
初期表示に必要なデータの作成と、View に表示するデータを作成し View へ設定します。
初期化後、1回だけ呼ばれます。ただし、インスタンスが破棄、メモリー不足、バックグランドにて OS が削除された場合は除きます。
つまり、インスタンスが存在した場合は、呼ばれません。

viewWillAppear

ViewController が画面に表示される直前に呼ばれます。
インスタンスが破棄されず、ナビゲーションコントローラ等にて表示される直前のたびに呼ばれます。

viewDidAppear

ViewController が画面に表示された直後に呼ばれます。
インスタンスが破棄されず、ナビゲーションコントローラ等にて表示された直後のたびに呼ばれます。

viewWillDisappear

ViewController が画面から非表示になる直前に呼ばれます。
他の画面へ遷移時に画面が非表示になる前に処理をしたい場合、こちらをオーバーライドします。

viewDidDisappear

ViewController が画面から非表示になる直後に呼ばれます。
他の画面へ遷移時に画面が非表示になった直後に処理をしたい場合、こちらをオーバーライドします。

didReceiveMemoryWarning

メモリーが不足にてインスタンスが破棄される直前に呼ばれます。
メモリー不足発生時に画面の状態を保持したい場合にオーバーライドします。

おすすめの本

 

タイトルとURLをコピーしました