我有三个UISegmented控件(在实用程序应用程序中),每个控件在更改值时将其选定的段存储在UserDefaults中。加载设置窗格时(带有三个分段控件的一侧),我访问NSUserDefaults以突出显示当前设置。无论出于何种原因,其中两个可以根据需要完美地工作,但是当用户从设置窗格移动到主视图并返回到设置窗格时,一个似乎随机波动......
这用于将所选片段设置为翻转到设置窗格:
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”索引,翻回主视图,然后返回,第一段突出显示....
答案 0 :(得分:1)
确保在NSUserDefaults中使用每个整数的唯一密钥dor。设置整数后,请确保synchronize
NSUserDefaults。
此外,加载密钥的速度更快:
segmentedControlC.selectedSegmentIndex = [defaults integerForKey:key];