「NotificationCenter」を使って実装できる。
この通知センターを使えば、アプリがバックグラウンドに行ったり終了されたりするタイミングを拾える。
実装
データを渡したい場合は、userInfo:
で指定する
AppDelegate.swift
// アプリがバックグランド状態になったら呼ばれる
func applicationDidEnterBackground(_ application: UIApplication) {
// 特定のnameで通知を発信
NotificationCenter.default.post(
name: .AppDidEnterBackground,
object: nil,
userInfo: ["test": 123])
}
extension Notification.Name {
static let AppDidEnterBackground = Notification.Name("applicationDidEnterBackground")
}
ViewController.swift
class ViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 通知センターの受信を登録
NotificationCenter.default.addObserver(
self, selector: #selector(ViewController.viewDidEnterBackground(notification:)),
name: .AppDidEnterBackground,
object: nil)
}
@objc func viewDidEnterBackground (notification: NSNotification?) {
let dic = notification!.userInfo
print(dic!["test"]!)
}
}