[swift] 앱 전환 감지 이벤트 처리하기

앱 전환 이벤트를 감지하여 특정 동작을 수행해야 할 때가 있습니다. 이를 처리하기 위해 Swift에서는 UIApplicationWillResignActiveNotificationUIApplicationDidBecomeActiveNotification 두 가지 알림(Notification)을 제공합니다. 이 두 알림을 사용하여 앱 전환 이벤트를 처리할 수 있습니다.

아래는 앱 전환 감지 이벤트를 처리하는 코드의 예시입니다:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 앱 전환 이벤트 감지를 위한 옵저버 등록
        NotificationCenter.default.addObserver(self, selector: #selector(appWillResignActive), name: UIApplication.willResignActiveNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(appDidBecomeActive), name: UIApplication.didBecomeActiveNotification, object: nil)
    }
    
    @objc func appWillResignActive() {
        // 앱이 비활성화될 때 실행할 코드 작성
        print("앱이 비활성화될 때 실행됩니다.")
    }
    
    @objc func appDidBecomeActive() {
        // 앱이 활성화될 때 실행할 코드 작성
        print("앱이 활성화될 때 실행됩니다.")
    }
    
    deinit {
        // 옵저버 등록 해제
        NotificationCenter.default.removeObserver(self)
    }
}

위 코드에서는 viewDidLoad() 메소드에서 UIApplication.willResignActiveNotificationUIApplication.didBecomeActiveNotification 알림을 옵저버로 등록하고, appWillResignActiveappDidBecomeActive 메소드를 구현하여 각각 앱이 비활성화 될 때와 활성화 될 때 실행할 코드를 작성합니다.

또한, 객체가 해제될 때 옵저버 등록을 해제하기 위해 deinit() 메소드에서 NotificationCenter.default.removeObserver(self)를 호출합니다.

위와 같이 해당 알림을 옵저버로 등록하고, 각각의 이벤트에 맞는 코드를 구현하여 앱 전환 이벤트를 처리할 수 있습니다. 이를 통해 앱의 전환 상태에 따라 필요한 작업을 수행할 수 있습니다.


참고 문서: