2015-05-19 20 views
16

Sono di fronte a un problema con le impostazioni delle app, sto usando il bundle delle impostazioni per selezionare l'ambiente, ma una volta selezionato e tornando alle impostazioni dell'app mostra di nuovo quello predefinito come selezionato.ios 8.2 e sopra il pacchetto di impostazioni non mostra l'elemento selezionato ma Default

Ciò è osservato solo da ios 8.2 e successivi (Dispositivo e simulatore). Il mio set di impostazioni plist appare come di seguito.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>PreferenceSpecifiers</key> 
    <array> 
     <dict> 
      <key>DefaultValue</key> 
      <string>1</string> 
      <key>Key</key> 
      <string>Environment</string> 
      <key>Title</key> 
      <string>Environment</string> 
      <key>Titles</key> 
      <array> 
       <string>Live</string> 
       <string>Stage</string> 
      </array> 
      <key>Type</key> 
      <string>PSRadioGroupSpecifier</string> 
      <key>Values</key> 
      <array> 
       <string>0</string> 
       <string>1</string> 
      </array> 
     </dict> 
    </array> 
    <key>StringsTable</key> 
    <string>Root</string> 
</dict> 
</plist> 

Vedo già qualche info in Stack Overflow che questo sta bug esistenti da parte di Apple, spero che se qualcuno ha qualche alcun aggiornamento su di esso.

+0

possono essere questi potrebbero aiutare - 1. http://stackoverflow.com/questions/29163955/ios-8-2-settings-bundle-default-value 2. http://stackoverflow.com/questions/29155410/ios-8-2-nsuserdefaults-standarduserdefaults-returning-nil?rq=1 3.http: //stackoverflow.com/questions/14077431/register-default-settings- da-the-settings-bundle-plist-file? rq = 1 4.http: //www.codedisqus.com/0SNjqXVqee/ios-settingsbundle-localization-difficulties.html –

+2

Ho riscontrato la stessa cosa ma solo quando utilizzo un PSRadioGroupSpecifier , noto anche come elemento del gruppo radio come Apple lo chiama qui: https://developer.apple.com/library/ios/documentation/PreferenceSettings/Conceptual/SettingsApplicationSchemaReference/Articles/RadioGroupElement.html Poiché l'editor plist di XCode non riconosce questo tipo, penso che Apple non l'abbia realmente implementato completamente. Quindi ho usato un elemento a valore multiplo (PSMultiValueSpecifier), che è fondamentalmente la stessa cosa tranne che con i valori in una schermata separata. – Wizfinger

risposta

1

Se le impostazioni apperance vengono impostate durante il lancio, è necessario ricaricare le viewcontrollers app per visualizzare il cambiamento, così si potrebbe aggiungere al vostro AppDelegate qualcosa come:

NSString *type nei tuoi Ivars

poi

type = [[NSUserDefaults standardUserDefault] objectForKey:@"Your key"]; 

nel metodo didFinishLaunchingWithOptions:

e, infine, nella vostra didEnterForeground metodo, aggiungere

if(![[[NSUserDefaults standardUserDefault] objectForKey:@"Your key"] isEqualToString:type]){ 
    //Reload your main view controller 
    [self.window.rootViewController viewDidLoad]; 
    [self.window.rootViewController viewWillAppear:YES]; 
}