我有三个 UISegmented 控件(在实用程序应用程序中),当值更改时,每个控件都将其选定的段存储在 UserDefaults 中。加载设置 Pane 后(具有三个分段控件的一侧),我访问 NSUserDefaults 以突出显示当前设置。无论出于何种原因,其中两个可以完美地按预期工作,但当用户从设置 Pane 移至主视图并返回设置 Pane 时,其中一个似乎会随机波动......
这用于将选定的片段设置为翻转到设置 Pane :
int setting2 = [defaults integerForKey:SegmentKey];
if(setting2 == 0)
{ NSLog(@"selected 0"); segmentedControlC.selectedSegmentIndex = 0; }
else
{ NSLog(@"selected 1"); segmentedControlC.selectedSegmentIndex = 1; }
当用户更改 selectedSegmentIndex 时,这用于为键“SegmentKey”分配一个值
[defaults setInteger:segmentedControlC.selectedSegmentIndex forKey:SegmentKey];
但是,由于某种原因,当我(在模拟器中)按下“0”索引时,翻转回主视图,然后返回,第一个片段突出显示......
最佳答案
确保对 NSUserDefaults 中的每个整数使用唯一的键。确保在设置整数后同步
NSUserDefaults。
此外,这可以更快地加载您的 key :
segmentedControlC.selectedSegmentIndex = [defaults integerForKey:key];
关于ios - NSUserDefaults 与 UISegmentedControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296212/