2015-05-19 18 views
16

Ich habe ein Problem mit App-Einstellungen, ich benutze Einstellungen Bundle, um die Umgebung auszuwählen, aber einmal ausgewählt und zurück zu App-Einstellungen zeigt es wieder die Standardeinstellungen wie ausgewählt.ios 8.2 und höher Einstellungen Bundle zeigt nicht ausgewählten Artikel, aber Standard

Dies wird nur von iOS 8.2 und höher (Gerät und Simulator) beobachtet. Meine Einstellungen Bündel plist sieht wie folgt aus.

<?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> 

ich bereits einige Informationen in Stack-Überlauf sehen, dass dieser Fehler von Apple vorhanden ist, hoffe ich, wenn jemand auf sie jede beliebige Update hat.

+0

sein können diese Ihnen helfen könnten - 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- from-the-settings-bundle-plist-Datei? rq = 1 4.http: //www.codedisqus.com/0SNjqXVqee/ios-settingsbundle-localization-difficulties.html –

+2

Ich habe die gleiche Sache, aber nur bei der Verwendung eines PSRadioGroupSpecifier , aka ein Radio Group Element, wie Apple es hier nennt: https://developer.apple.com/library/ios/documentation/PreferenceSettings/Conceptual/SettingsApplicationSchemaReference/Articles/RadioGroupElement.html Da XCodes Plist-Editor diesen Typ nicht erkennt, denke ich, dass Apple dies nicht wirklich vollständig implementiert hat. Also habe ich stattdessen ein Multi-Value-Element (PSMultiValueSpecifier) ​​verwendet, was im Grunde dasselbe ist, außer mit den Werten in einem separaten Bildschirm. – Wizfinger

Antwort

1

Wenn Ihr Apperance Einstellungen während des Starts festgelegt sind, müssen Sie Ihre App Viewcontrollers laden Sie die Änderung angezeigt werden, so könnten Sie Ihren AppDelegate so etwas wie hinzufügen:

NSString *type in Ihrem ivars

dann

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

in Ihrer didFinishLaunchingWithOptions: Methode

und schließlich in Ihrem didEnterForeground Verfahren, fügen

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