【发布时间】:2017-10-17 11:49:26
【问题描述】:
我面临一个问题,即我的分段控制器在关闭应用程序并再次打开后没有保存其位置。
我的代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
[self.segmentedControlButtonStyle addTarget:self action:@selector(changeButtonStyle:) forControlEvents:UIControlEventValueChanged];
}
- (IBAction)changeButtonStyle:(id)sender {
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.number.application"];
NSInteger selectedSegmentedControlerIndex = self.segmentedControlButtonStyle.selectedSegmentIndex;
if (sharedDefaults) {
[sharedDefaults setInteger: selectedSegmentedControlerIndex forKey:@"MySelectedButtonStyleKey"];
[sharedDefaults synchronize];
}
}
有趣的是,NSUserDefaults 实际上保存了正确的索引,因为从我上面提供的方法中,如果我更改按钮样式,它会在再次关闭和打开应用程序后保持更改,因为我可以看到它,但分段控制器本身没有显示正确段。
我不确定为什么会发生这种情况,因为我在每次分段更改后进行同步,但分段控制器仍保持其默认位置。
【问题讨论】:
-
你在哪里将它设置为保存的索引?
-
在 viewDidLoad 中你必须读取 userDefaults 并为分段控件设置正确的索引
-
您能否将代码发布到您实际使用
MySelectedButtonStyleKey设置分段控件的选定状态的位置?
标签: ios objective-c uisegmentedcontrol