Lin*_*rld 16 objective-c settings-bundle ios ios8.2 ios8.3
我正面临应用程序设置的问题,我正在使用设置包来选择环境,但一旦选择并返回到应用程序设置,它将再次显示默认选项.
这仅在ios 8.2及以上(设备和模拟器)中观察到.我的设置捆绑plist如下所示.
<?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>
Run Code Online (Sandbox Code Playgroud)
我已经在Stack溢出中看到一些信息,这是来自Apple的现有错误,我希望如果有人对它有任何更新.
如果您的外观设置是在启动期间设置的,则必须重新加载应用程序视图控制器才能显示更改,因此您可以向 appDelegate 添加如下内容:
NSString *type在你的伊瓦尔
然后
type = [[NSUserDefaults standardUserDefault] objectForKey:@"Your key"];
Run Code Online (Sandbox Code Playgroud)
在你的didFinishLaunchingWithOptions:方法中
最后,在您的didEnterForeground方法中添加
if(![[[NSUserDefaults standardUserDefault] objectForKey:@"Your key"] isEqualToString:type]){
//Reload your main view controller
[self.window.rootViewController viewDidLoad];
[self.window.rootViewController viewWillAppear:YES];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |