iosobjective-ciphoneapplication-settingsappsettings

Opening the Settings app from another app


Okay, I know that there are many question about it, but they are all from many time ago.

So. I know that it is possible because the Map app does it.

In the Map app if I turn off the localization for this app, it send me a message, and if I press okay, the "Settings App" will be open. And my question is, how is this possible? How can I open the "Setting app" from my own app?

Basically I need to do the same thing, if the user turn off the location for my app, then I'll show him a message saying something that will open the "Setting app"


Solution

  • As mentioned by Karan Dua this is now possible in iOS8 using UIApplicationOpenSettingsURLString see Apple's Documentation.

    Example:

    Swift 4.2

    UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
    

    In Swift 3:

    UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)
    

    In Swift 2:

    UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)
    

    In Objective-C

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    

    Prior to iOS 8:

    You can not. As you said this has been covered many times and that pop up asking you to turn on location services is supplied by Apple and not by the App itself. That is why it is able to the open the settings application.

    Here are a few related questions & articles:

    is it possible to open Settings App using openURL?

    Programmatically opening the settings app (iPhone)

    How can I open the Settings app when the user presses a button?

    iPhone: Opening Application Preferences Panel From App

    Open UIPickerView by clicking on an entry in the app's preferences - How to?

    Open the Settings app?

    iOS: You’re Doing Settings Wrong