所以我有一个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
。如何保存最后一个按钮状态?
答案 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")
此处有很多数据类型。选择要保存的方式>:)