【发布时间】:2012-12-20 09:54:36
【问题描述】:
如果使用 interface builder 将 Switch 拖到 xib 文件中,则可以在 IB 中将状态设置为 on/off。有没有办法将开关的状态保存到下次应用启动时,以便开关处于关闭之前的相同状态?
【问题讨论】:
标签: ios xcode save switch-statement
如果使用 interface builder 将 Switch 拖到 xib 文件中,则可以在 IB 中将状态设置为 on/off。有没有办法将开关的状态保存到下次应用启动时,以便开关处于关闭之前的相同状态?
【问题讨论】:
标签: ios xcode save switch-statement
您可以使用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];
}
}
希望这会有所帮助。
【讨论】:
您可以为此使用NSUserDefaults。
保存开关状态如下:
BOOL yourSwitchState = yourSwitch.on;
[[NSUserDefaults standardUserDefaults] setBool:yourSwitchState forKey:@"Switch"];
在viewWillAppear 中获取用户默认值并将其设置为切换:
BOOL switchState = [[NSUserDefaults standardUserDefaults] boolForKey:@"Switch"];
yourSwitch.on = switchState;
【讨论】:
试试这个,
{
如果(开启)
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchState"];
}
否则
{ //
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchState"];
}
}
下次启动应用时
switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchState"];
【讨论】: