I am facing a issue with App settings, i am using settings bundle to select the environment, but once selected and going back to app settings its showing again the default one as selected.
This is observed only from ios 8.2 and above(Device and simulator). My settings bundle plist looks like below.
<?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>
I already see some info in Stack overflow that this is existing bug from Apple, I hope if some one has any any update on it.
If your apperance settings are set during launch, you must reload your app viewcontrollers to display the change, so you could add to your appDelegate something like:
NSString *type
in your ivars
then
type = [[NSUserDefaults standardUserDefault] objectForKey:@"Your key"];
in your didFinishLaunchingWithOptions:
method
and finally, in your didEnterForeground
method, add
if(![[[NSUserDefaults standardUserDefault] objectForKey:@"Your key"] isEqualToString:type]){
//Reload your main view controller
[self.window.rootViewController viewDidLoad];
[self.window.rootViewController viewWillAppear:YES];
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With