앱 전환 이벤트를 감지하여 특정 동작을 수행해야 할 때가 있습니다. 이를 처리하기 위해 Swift에서는 UIApplicationWillResignActiveNotification
과 UIApplicationDidBecomeActiveNotification
두 가지 알림(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.willResignActiveNotification
과 UIApplication.didBecomeActiveNotification
알림을 옵저버로 등록하고, appWillResignActive
와 appDidBecomeActive
메소드를 구현하여 각각 앱이 비활성화 될 때와 활성화 될 때 실행할 코드를 작성합니다.
또한, 객체가 해제될 때 옵저버 등록을 해제하기 위해 deinit()
메소드에서 NotificationCenter.default.removeObserver(self)
를 호출합니다.
위와 같이 해당 알림을 옵저버로 등록하고, 각각의 이벤트에 맞는 코드를 구현하여 앱 전환 이벤트를 처리할 수 있습니다. 이를 통해 앱의 전환 상태에 따라 필요한 작업을 수행할 수 있습니다.
참고 문서:
-
Apple Developer Documentation - UIApplication.willResignActiveNotification
-
Apple Developer Documentation - UIApplication.didBecomeActiveNotification