⚠️ Be careful!
This answer is based on undocumented APIs and recently (since iOS12) Apple is rejecting apps with this approach.
Original answer below
Swift 5
UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!, options: [:], completionHandler: nil)
Swift 4
UIApplication.shared.open(URL(string: UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: nil)
NOTE: The following method works for all the versions below iOS 11, for higher versions the app might get rejected since it's a private API
Sometimes we want to take a user to settings other than our app settings.
The following method will help you achieve that:
First, configure the URL Schemes in your project. You will find it in Target -> Info -> URL Scheme. click on + button and type prefs in URL Schemes
Swift 5
UIApplication.shared.open(URL(string: "App-prefs:Bluetooth")!)
Swift 3
UIApplication.shared.open(URL(string:"App-Prefs:root=General")!, options: [:], completionHandler: nil)
Swift
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=General")!)
Objective-C
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]];
and following are all the available URLs
**On IOS < 12 **
- prefs:root=General&path=About
- prefs:root=General&path=ACCESSIBILITY
- prefs:root=AIRPLANE_MODE
- prefs:root=General&path=AUTOLOCK
- prefs:root=General&path=USAGE/CELLULAR_USAGE
- prefs:root=Brightness
- prefs:root=Bluetooth
- prefs:root=General&path=DATE_AND_TIME
- prefs:root=FACETIME
- prefs:root=General
- prefs:root=General&path=Keyboard
- prefs:root=CASTLE
- prefs:root=CASTLE&path=STORAGE_AND_BACKUP
- prefs:root=General&path=INTERNATIONAL
- prefs:root=LOCATION_SERVICES
- prefs:root=ACCOUNT_SETTINGS
- prefs:root=MUSIC
- prefs:root=MUSIC&path=EQ
- prefs:root=MUSIC&path=VolumeLimit
- prefs:root=General&path=Network
- prefs:root=NIKE_PLUS_IPOD
- prefs:root=NOTES
- prefs:root=NOTIFICATIONS_ID
- prefs:root=Phone
- prefs:root=Photos
- prefs:root=General&path=ManagedConfigurationList
- prefs:root=General&path=Reset
- prefs:root=Sounds&path=Ringtone
- prefs:root=Safari
- prefs:root=General&path=Assistant
- prefs:root=Sounds
- prefs:root=General&path=SOFTWARE_UPDATE_LINK
- prefs:root=STORE
- prefs:root=TWITTER
- prefs:root=FACEBOOK
- prefs:root=General&path=USAGE prefs:root=VIDEO
- prefs:root=General&path=Network/VPN
- prefs:root=Wallpaper
- prefs:root=WIFI
- prefs:root=INTERNET_TETHERING
- prefs:root=Phone&path=Blocked
- prefs:root=DO_NOT_DISTURB
On IOS 13
- App-prefs:General&path=About
- App-prefs:AIRPLANE_MODE
- App-prefs:General&path=AUTOLOCK
- App-prefs:Bluetooth
- App-prefs:General&path=DATE_AND_TIME
- App-prefs:FACETIME
- App-prefs:General
- App-prefs:General&path=Keyboard
- App-prefs:CASTLE
- App-prefs:CASTLE&path=STORAGE_AND_BACKUP
- App-prefs:General&path=INTERNATIONAL
- App-prefs:MUSIC
- App-prefs:NOTES
- App-prefs:NOTIFICATIONS_ID
- App-prefs:Phone
- App-prefs:Photos
- App-prefs:General&path=ManagedConfigurationList
- App-prefs:General&path=Reset
- App-prefs:Sounds&path=Ringtone
- App-prefs:Sounds
- App-prefs:General&path=SOFTWARE_UPDATE_LINK
- App-prefs:STORE
- App-prefs:Wallpaper
- App-prefs:WIFI
- App-prefs:INTERNET_TETHERING
- App-prefs:DO_NOT_DISTURB
Not tested
- App-prefs:TWITTER (??)
- App-prefs:FACEBOOK (??)
- App-prefs:NIKE_PLUS_IPOD (??)
✅ Tested IOS > 12
- App-prefs:HEALTH&path=SOURCES
Note: Network setting will not be opened in a simulator, but the link will work on a real device.