iOSアプリ開発 入門 (1) - ライフサイクル
iOSのライフサイクルメソッドの順番をよく忘れるのでメモしました。
・iOS 14
1. iOSのライフサイクルメソッドの呼ばれる順番
iOSのライフサイクルメソッドの呼ばれる順番は、次のとおり。
◎ アプリの起動
(1) AppDelegate.application(:didFinishLaunchingWithOptions:)
(2) AppDelegate.application(:configurationForConnecting:options:)
(3) SceneDelegate.scene(:willConnectTo:connectionOptions:)
(4) ViewController.viewDidLoad()
(5) SceneDelegate.sceneWillEnterForeground(:)
(6) SceneDelegate.sceneDidBecomeActive(:)
◎ アプリのバックグラウンド遷移
(1) SceneDelegate.sceneWillResignActive(:)
(2) SceneDelegate.sceneDidEnterBackground(:)
◎ アプリのフォアグラウンド遷移
(1) SceneDelegate.sceneWillEnterForeground(:)
(2) SceneDelegate.sceneDidBecomeActive(:)
◎ アプリの終了
(1) SceneDelegate.sceneDidDisconnect(:)
(2) AppDelegate.application(:didDiscardSceneSessions:)
2. iOSのライフサイクルメソッドの雛形
iOS13のライフサイクルメソッドの雛形は、次のとおり。
◎ AppDelegate.swift
import UIKit
// AppDelegate
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
// アプリの起動時に呼ばれる
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
// シーンの起動時に呼ばれる
func application(_ application: UIApplication, configurationForConnecting
connectingSceneSession: UISceneSession,
options: UIScene.ConnectionOptions) -> UISceneConfiguration {
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
// シーンの終了時に呼ばれる
func application(_ application: UIApplication, didDiscardSceneSessions
sceneSessions: Set<UISceneSession>) {
}
}
◎ SceneDelegate.swift
import UIKit
// SceneDelegate
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
// シーンの起動時に呼ばれる
func scene(_ scene: UIScene, willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
}
// シーンの終了時に呼ばれる
func sceneDidDisconnect(_ scene: UIScene) {
}
// シーンのフォアグラウンド遷移前に呼ばれる
func sceneWillEnterForeground(_ scene: UIScene) {
}
// シーンのフォアグラウンド遷移後に呼ばれる
func sceneDidBecomeActive(_ scene: UIScene) {
}
// シーンのバックグラウンド遷移前に呼ばれる
func sceneWillResignActive(_ scene: UIScene) {
}
// シーンのバックグラウンド遷移後に呼ばれる
func sceneDidEnterBackground(_ scene: UIScene) {
}
}
◎ ViewController.swift
import UIKit
// ViewController
class ViewController: UIViewController {
// ビューのロード時に呼ばれる
override func viewDidLoad() {
super.viewDidLoad()
}
// ビュー表示前に呼ばれる
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
// ビュー表示後に呼ばれる
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
// ビュー非表示前に呼ばれる
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
}
// ビュー非表示後に呼ばれる
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
}
}
次回
この記事が気に入ったらサポートをしてみませんか?