問題

我面臨一個App設定的問題,我正在使用設定包來選擇環境,但一旦選擇並返回應用程式設定,它將再次顯示所選的預設設定.

這只是從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溢位中看到一些資訊,這是來自Apple的現有錯誤,我希望有人對它有任何更新.

  最佳答案

如果您的apperance設定在啟動期間設定,您必須重新載入您的應用程式viewcontroller以顯示更改,所以您可以新增到您的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];
} 
 

  相同標籤的其他問題

iosobjective-cios8.3ios8.2settings-bundle