“由于我只有一个视图控制器,我无法检索 NSUserDefaults。”
您可以在该视图中检索用户默认值viewDIdLoad
以读取开关位置
所以如果你只有一个viewController
- 保存到
NSSsuserDefaults
你正在做的事情
- 在 viewDidLoad 中读取开关状态以检索开关的位置
在您的开关操作方法中保存开关状态
if (sender == _switch) {
BOOL mySwitchValue = [ sender isOn ];
NSString *tmpString = mySwitchValue ? @"1" : @"-1" ;
NSUserDefaults *myNSUD = [NSUserDefaults standardUserDefaults];
[ myNSUD setObject:tmpString forKey: @"mySwitchValueKey" ];
[ myNSUD synchronize ];
//save a key to read switch state in another view if required
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:self.barCodeSwitch.on forKey:@"switch1"];
[userDefaults synchronize];
}
}
读取 viewDidLoad 中保存的开关位置
NSUserDefaults *myNSUD = [NSUserDefaults standardUserDefaults];
NSString *tmpString = [ myNSUD stringForKey: @"mySwitchValueKey"];
BOOL mySwitchValue = NO; // or DEFAULT_VALUE on/off
if (tmpString != nil) {
mySwitchValue = ( [ tmpString intValue ] == 1 );
}
[_autocompleteSwitch setOn: mySwitchValue];