如果使用界面构建器将Switch拖动到xib文件,则可以在IB中将状态设置为on / off。有没有办法保存交换机的状态,直到下次应用程序启动,以便交换机在关闭之前处于相同的状态?
答案 0 :(得分:3)
您可以使用NSUserDefaults保存它。
首先将您的交换机连接为IBOutlet
@property (weak, nonatomic) IBOutlet UISwitch *mySwitch;
同时将您的交换机连接为IBAction,事件类型为“Value Changed”
- (IBAction)switched:(id)sender;
然后在你的UIViewController的viewDidLoad
BOOL savedState = [[NSUserDefaults standardUserDefaults] boolForKey:@"mySwitch"];
[self.mySwitch setOn:savedState];
并在新的switched:
操作中
- (IBAction)switched:(id)sender
{
if (sender == self.mySwitch)
{
[[NSUserDefaults standardUserDefaults] setBool:self.mySwitch.isOn forKey:@"mySwitch"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
希望这会有所帮助。
答案 1 :(得分:2)
您可以将NSUserDefaults用于此目的。
保存开关状态,如:
BOOL yourSwitchState = yourSwitch.on;
[[NSUserDefaults standardUserDefaults] setBool:yourSwitchState forKey:@"Switch"];
在viewWillAppear
中获取用户默认值并将其设置为切换为:
BOOL switchState = [[NSUserDefaults standardUserDefaults] boolForKey:@"Switch"];
yourSwitch.on = switchState;
答案 2 :(得分:0)
试试这个,
{
if(switch.on)
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchState"];
}
其他
{ //
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchState"];
}
}
下次应用启动时
switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@“SwitchState”];