ios - NSUserDefaults 与 UISegmentedControl

标签 ios nsuserdefaults uisegmentedcontrol ios-simulator

我有三个 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/

相关文章:

ios - 添加到 viewDidLayoutSubviews 时按钮渐变不起作用

ios - 从正在删除的 UITableViewCell 中获取标题

swift - 从哪里调用分段的 Control.remove Borders()?

ios - 如何在 iOS 的单个界面而不是应用程序范围内实现选项卡?

ios - 将 UITapGestureRecognizer(双击)添加到 UIButton 会减慢将按钮图像设置为选中的速度

objective-C:关于复制/保留 NSString 的简单问题

ios - 每次在按钮中完成点击时执行一个方法

iOS – 应用程序设置,尝试重置开关

iOS 应用未根据所选语言进行本地化

iphone - UISegmentedControl 委托(delegate)/触摸事件