如何在重新启动应用程序后保存按钮的状态?

时间:2017-06-05 04:18:38

标签: ios objective-c nsuserdefaults

所以我有一个button点击后会更改图片。我想保存button的状态,以便当用户再次重新打开应用时,button将显示其最后状态。

以下是我的代码: -

- (IBAction)xButtonOnPressed:(id)sender {
    [self.xButtonLabel setImage:[UIImage imageNamed:@"x_did-not-take_marked.png"] forState:UIControlStateSelected];
    [self.xButtonLabel setImage:[UIImage imageNamed:@"x_did-not-take.png"] forState:UIControlStateNormal];

    self.xButtonLabel.selected = !self.xButtonLabel.selected;

}

代码的问题在于,它在重新启动应用程序后总是会回到UIControlStateNormal。如何保存最后一个按钮状态?

2 个答案:

答案 0 :(得分:2)

假设您有一个名为按钮的按钮:

UIButton *button;

// get nsuserdefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// save selected state
[defaults setBool:button.selected forKey:@"myButtonState"];

之后,应用程序再次启动后......

// restore the selected state
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
button.selected = [defaults boolForKey:@"myButtonState"];

答案 1 :(得分:0)

为此使用 NSUserDefaults

目标C:

存储:

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

要检索:

Bool isNormalState = [[NSUserDefaults standardUserDefaults]
    boolForKey:@"BUTTON_STATE_NORMAL"];

if(isNormalState == true) {
  //Do your thing.
}

其他

swift 3:

存储:

UserDefaults.standard.set("Your_button_state", forKey: "Key") //setObject

要检索:

UserDefaults.standard.string(forKey: "Key")

此处有很多数据类型。选择要保存的方式>:)