2010-11-03 5 views
9

Da quello che ho capito, utilizzando il codice come questo:Come posso aprire l'app Impostazioni quando l'utente preme un pulsante?

NSURL* appUrl = [NSURL URLWithString: @"URL"]; 
[[UIApplication sharedApplication] openURL:appUrl]; 

posso visione della mappa, YouTube, Safari, Mail, iTunes e App Store, quando un utente dicono preme un pulsante.

Ma mi chiedevo è possibile aprire l'app Impostazioni con questo metodo.

Fondamentalmente, la prima volta che l'utente apre la mia app Voglio che UIAlertView si apra per far sapere all'utente che può modificare un'impostazione specifica se lo desidera, e se preme OK o preme le impostazioni per portarli a l'app delle impostazioni.

So che Apple lo fa in alcune situazioni, ma è possibile per gli sviluppatori farlo?

+0

possibile duplicato [Apertura dell'app Impostazioni da un'altra app] (http://stackoverflow.com/questions/5655674/opening-the-settings-app-from-another-app) – Flexo

risposta

16

Come da @ di bnduati risposta, in iOS 8 è possibile utilizzare il seguente codice per aprire le impostazioni del app in app impostazioni:

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

Vecchio risposta:

Da iOS 5.1 a iOS 7 , non è stato possibile aprire l'app delle impostazioni da un'altra applicazione.

È possibile esaminare this framework per fornire le impostazioni in-app.

ci sono un bel paio di altre questioni che trattano questo argomento:

iPhone - how to put Settings bundle seen through System Settings App into your own App?

Launch iPhone setting screen from Application?

How to send a user to the main iPhone Settings screen from within your iPhone App

+0

Grazie di cuore!InAppSettingsKit funziona molto bene con le impostazioni delle app – cgossain

+0

Questo è possibile in iOS 8+ usando 'UIApplicationOpenSettingsURLString'. Vedi la risposta di @ bnduati qui sotto: http://stackoverflow.com/a/25311388/1148702 –

3

Non so se questo sia possibile o meno, ma un problema è che l'utente dovrebbe quindi tornare alla tua app. Puoi invece avere la tua vista delle preferenze che può scrivere sullo stesso file che l'app delle preferenze userà usando NSUserDefaults.

[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];

[[NSUserDefaults standardUserDefaults] stringForKey:key]

6

È possibile utilizzare questo su iOS 5.0 e versioni successive:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]]; 
+1

Si prega di incollare un collegamento dalla documentazione. –

+11

Questo è stato disabilitato in iOS 5.1 – RPM

+0

... e abilitato in iOS 8 con 'UIApplicationOpenSettingsURLString' –

9

In iOS 8 e versioni successive è possibile inviare all'utente di impostazioni del app nel seguente modo:

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

Swift Sintassi:

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

Swift 3

private func showAlertPrivacy() { 
    let alertController = UIAlertController(title: nil, message: "messagePrivacy", preferredStyle: .alert) 
    let alertNo = UIAlertAction(title: "No", style: .default) { (_) in 

    } 
    alertController.addAction(alertNo) 

    let alertSetting = UIAlertAction(title: "Settings", style: .default) { (_) in 

     UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!, options: [:], completionHandler: { (_) in 

     }) 
    } 
    alertController.addAction(alertSetting) 

    present(alertController, animated: true) { 

    } 
}