Blog スタッフブログ

iOS Swift システム開発 ひとくちコードスニペット

[Swift]アプリがアクティブ状態になった時通知するコードスニペット

Swift

こんにちは、株式会社MIXシステム開発担当のBloomです。

今回はSwiftで利用できるアプリがアクティブ状態になった時ViewControllerなどへ通知するコードスニペットを紹介します。

extension Notification.Name {
    static let applicationDidBecomeActive = Notification.Name("applicationDidBecomeActive")
}
    func applicationDidBecomeActive(_ application: UIApplication) {
        NotificationCenter.default.post(name: Notification.Name.applicationDidBecomeActive, object: nil)
    }
    @available(iOS 13.0, *)
    func sceneDidBecomeActive(_ scene: UIScene) {
        NotificationCenter.default.post(name: Notification.Name.applicationDidBecomeActive, object: nil)
    }
  
    override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive(_:)), name: Notification.Name.applicationDidBecomeActive, object: nil)        
    }
    @objc func applicationDidBecomeActive(_ notification : Notification) {
    }

iPadOSの導入以降SceneDelegateのsceneDidBecomeActiveにより通知されるケースがiPhoneでも基本になっているようです。AppDelegateから通知されるケースは少ないようですが一応実装しておきましょう。