我正面临一个应用程序设置的问题,我使用设置包来选择环境,但是一旦选择并回到应用程序设置,它再次显示默认设置。
这只在ios 8.2及以上版本(设备和模拟器)中观察到。我的设置包列表如下所示:
<?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>
我已经在Stack overflow中看到一些信息,这是苹果现有的错误,我希望如果有人有任何任何更新。
如果你的外观设置是在启动时设置的,你必须重新加载你的应用程序视图控制器来显示更改,所以你可以在你的appDelegate中添加如下内容:
NSString *type
在你的ivars
type = [[NSUserDefaults standardUserDefault] objectForKey:@"Your key"];
在你的didFinishLaunchingWithOptions:
方法
,最后,在didEnterForeground
方法中,添加
if(![[[NSUserDefaults standardUserDefault] objectForKey:@"Your key"] isEqualToString:type]){
//Reload your main view controller
[self.window.rootViewController viewDidLoad];
[self.window.rootViewController viewWillAppear:YES];
}
在iOS 8和更高版本中似乎有一个bug,其中单选按钮设置总是在设置应用程序中恢复到默认值。其他人也遇到了同样的问题:iOS设置bundle PSRadioGroupSpecifier不显示所选值