使用Interface Builder进行交换机

时间:2012-12-20 09:54:36

标签: ios xcode save switch-statement

如果使用界面构建器将Switch拖动到xib文件,则可以在IB中将状态设置为on / off。有没有办法保存交换机的状态,直到下次应用程序启动,以便交换机在关闭之前处于相同的状态?

3 个答案:

答案 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)

试试这个,

  • (void)handleSwitch :( UISwitch *)开关

{

if(switch.on)

{

     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchState"];

}

其他

{ //

    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchState"];

}

}

下次应用启动时

switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@“SwitchState”];