如果使用 interface builder 将 Switch 拖到 xib 文件中,则可以在 IB 中将状态设置为 on/off。有没有办法将开关的状态保存到应用程序下次启动时,以便开关处于关闭之前的相同状态?
问问题
314 次
3 回答
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];
}
}
希望这可以帮助。
于 2012-12-20T10:03:48.803 回答
2
您可以为此目的使用NSUserDefaults 。
保存开关状态,如:
BOOL yourSwitchState = yourSwitch.on;
[[NSUserDefaults standardUserDefaults] setBool:yourSwitchState forKey:@"Switch"];
在viewWillAppear
从用户默认值中获取值并将其设置为如下切换:
BOOL switchState = [[NSUserDefaults standardUserDefaults] boolForKey:@"Switch"];
yourSwitch.on = switchState;
于 2012-12-20T09:58:34.017 回答
0
试试这个,
- (void)handleSwitch:(UISwitch *)switch
{
如果(开关。打开)
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchState"];
}
别的
{ //
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchState"];
}
}
下次您的应用启动时
switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchState"];
于 2012-12-20T09:58:08.467 回答