重启应用后如何保存按钮的状态?

How to save the state of a button after restarting the app?

所以我有一个 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。如何保存最后一个按钮状态?

为此使用 NSUserDefaults

Objective 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")

this.Choose你想保存的方式有很多数据类型>:)

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

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"];