保存分段控制器位置
Saving segmented controller position
我遇到一个问题,即我的分段控制器在关闭应用程序并再次打开后没有保存其位置。
我的代码如下:
- (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 实际上保存了正确的索引,因为根据我上面提供的方法,如果我更改按钮样式,它会在关闭和再次打开应用程序后保持更改,因为我可以看到它,但分段控制器本身不是显示正确的段。
我不确定为什么会发生这种情况,因为每次分段更改后我都在同步,但分段控制器仍保持其默认位置。
鉴于已加载您应该添加代码来设置您保存的段
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.number.application"];
int mySegment = [sharedDefaults integerForKey:@"MySelectedButtonStyleKey"];
if(mySegment) {
self.segmentedControlButtonStyle.selectedSegmentIndex = mySegment;
}
我遇到一个问题,即我的分段控制器在关闭应用程序并再次打开后没有保存其位置。
我的代码如下:
- (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 实际上保存了正确的索引,因为根据我上面提供的方法,如果我更改按钮样式,它会在关闭和再次打开应用程序后保持更改,因为我可以看到它,但分段控制器本身不是显示正确的段。
我不确定为什么会发生这种情况,因为每次分段更改后我都在同步,但分段控制器仍保持其默认位置。
鉴于已加载您应该添加代码来设置您保存的段
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.number.application"];
int mySegment = [sharedDefaults integerForKey:@"MySelectedButtonStyleKey"];
if(mySegment) {
self.segmentedControlButtonStyle.selectedSegmentIndex = mySegment;
}