NSUserDefaults与UISegmentedControl

时间:2011-09-03 22:22:23

标签: ios nsuserdefaults uisegmentedcontrol ios-simulator

我有三个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”索引,翻回主视图,然后返回,第一段突出显示....

1 个答案:

答案 0 :(得分:1)

确保在NSUserDefaults中使用每个整数的唯一密钥dor。设置整数后,请确保synchronize NSUserDefaults。 此外,加载密钥的速度更快:

segmentedControlC.selectedSegmentIndex = [defaults integerForKey:key];