2012-03-12 10 views
7

C'è un'opportunità per mostrare le impostazioni.app in iOS facendo clic su un pulsante? Dovrebbe funzionare con iOS 5.1, quindi l'URL "prefs: root ..." non è un'opzione.App Impostazioni di accesso in iOS

Hai un'idea di come risolvere questo?

risposta

0

iOS6 mostra un'opzione per aprire l'applicazione Impostazioni direttamente da un 'AlertView' (mostrato automaticamente) se rileva se si sta cercando di inviare a FB o Twitter, senza dover quelli di configurazione account.

I have elaborated this over here

9

So che la questione è di circa 5.1 in particolare, ma nel caso qualcuno altro è interessato:

Come di iOS 8, è possibile prendere un utente dalla tua app direttamente in app Impostazioni . Saranno collegati in profondità nella pagina delle impostazioni specifiche della tua app, ma potranno tornare alla schermata Impostazioni di primo livello.

UPDATE:

Grazie al commento di Pavel, ho semplificato l'istruzione if ed evitato l'EXC_BAD_ACCESS su iOS 7.

UPDATE 2:

Se la destinazione di distribuzione è impostato su 8.0 o superiore, Xcode 6.3 ti darà il seguente avviso:

Comparison of address of 'UIApplicationOpenSettingsURLString' not equal to a null pointer is always true 

Questo perché la funzione era disponibile a partire dalla 8.0, quindi questo puntatore non sarà mai NULL. Se il target di implementazione è 8.0+, rimuovi l'istruzione if di seguito.

if (&UIApplicationOpenSettingsURLString != NULL) { 
    NSURL *appSettings = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
    [[UIApplication sharedApplication] openURL:appSettings]; 
} 
+3

UIApplicationOpenSettingsURLString provoca un'EXC_BAD_ACCESS su iOS7. Meglio così: if (& UIApplicationOpenSettingsURLString) – Pavel

+0

Grazie a @Pavel, ho aggiornato il mio esempio di codice. – djibouti33

1

Su iOS 8 Apple ci ha dato la possibilità di andare in Impostazioni App direttamente dalla nostra applicazione

è possibile applicare questo codice:

- (IBAction)openSettings:(id)sender { 
    BOOL canOpenSettings = (UIApplicationOpenSettingsURLString != NULL); 
    if (canOpenSettings) { 
     NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
     [[UIApplication sharedApplication] openURL:url]; 
    } 
}