15

我面临应用程序设置的问题,我正在使用设置包来选择环境,但是一旦选择并返回应用程序设置,它就会再次显示默认设置。

这仅在 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>

我已经在 Stack Overflow 中看到了一些信息,表明这是 Apple 的现有错误,我希望有人对此有任何更新。

4

2 回答 2

1

如果您的外观设置是在启动期间设置的,您必须重新加载您的应用程序视图控制器以显示更改,因此您可以向您的 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];
} 
于 2015-06-12T19:45:54.403 回答
0

在 iOS 8 及更高版本中似乎存在一个错误,即单选按钮设置始终恢复为设置应用程序中的默认值。其他人也遇到了同样的问题:iOS 设置包 PSRadioGroupSpecifier 不显示选定的值

于 2016-02-04T23:49:47.763 回答