Swift、Objective-Cでバックグラウンド、フォアグラウンドへの遷移する方法
iOS Swift Objective-C
Published: 2019-01-28

目的

iOS アプリでバックグラウンドに遷移したとき、フォアグラウンドに遷移したときにある処理を実行する方法を調べました。

Notification 一覧

イベントタイミング Swift Objective-C
フォアグラウンドになる直前 NSNotification.Name.UIApplicationWillEnterForeground UIApplicationWillEnterForegroundNotification
アクティブになったら NSNotification.Name.UIApplicationDidBecomeActive UIApplicationDidBecomeActiveNotification
アクティブでなくなる直前 NSNotification.Name.UIApplicationWillResignActive UIApplicationWillResignActiveNotification
バックグランドになったら NSNotification.Name.UIApplicationDidEnterBackground UIApplicationDidEnterBackgroundNotification
終了する直前 NSNotification.Name.UIApplicationWillTerminate UIApplicationWillTerminateNotification

Objective-C で実装

アクティブでなくなる直前、hogehoge1 を呼び出します。 フォアグラウンドになったとき、hogehoge2 を呼び出します。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hogehoge1) name:UIApplicationWillResignActiveNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hogehoge2) name:UIApplicationDidBecomeActiveNotification object:nil];

また、登録したイベントを削除します。

[[NSNotificationCenter defaultCenter] removeObserver:self];

Swift で実装

アクティブでなくなる直前、hogehoge1 を呼び出します。

バックグラウンドになったとき、hogehoge2 を呼び出します。

NotificationCenter.default.addObserver(self, selector: #selector(self.hogehoge1), name: NSNotification.Name.UIApplicationWillResignActive, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.hogehoge2), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)

参考