NEW: Master Swift design patterns with my latest book! >>

How to detect when your app moves to the background

Written by Paul Hudson    @twostraws

There are two ways to be notified when your app moves to the background: implement the applicationWillResignActive() method in your app delegate, or register for the UIApplicationWillResignActive notification anywhere in your app. This particular notification is sent as soon as your app loses focus, meaning that it's triggered when the user taps the home button once (to return to the home screen) or double taps the home button (to enter multi-tasking).

If you want to go down the app delegate route, you'll find a stub for applicationWillResignActive() already in your AppDelegate.swift file. If you want to look for the notification, use this:

override func viewDidLoad() {
    super.viewDidLoad()
    let notificationCenter = NotificationCenter.default
    notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: Notification.Name.UIApplicationWillResignActive, object: nil)
}

@objc func appMovedToBackground() {
    print("App moved to background!")
}

Available from iOS 4.0 – see Hacking with Swift tutorial 28

Did this solution work for you? Please pass it on!

Other people are reading…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Learn Swift faster!

Take your Swift learning to the next level: buy the Hacking with Swift e-book and get bonus material to help you learn faster!

Click here to visit the Hacking with Swift store >>