1

我在视图上有一个自定义 UIButton,当我按下它时,它会改变状态和 img。当我退出视图并返回它时,UIButton 的状态保持不变。但是当我退出我的应用程序并重新启动它时。我的自定义 UIButton 的状态恢复为默认值。当我退出应用程序时,有没有办法可以保存该按钮的状态?

下面是一个示例图片

在 http://i.minus.com/ibzHa1XCTDwSAJ.png 之前

![之后] http://min.us/mtkB3JQRI

这是我试图在 -(void)viewDidLoad 上执行此操作的代码

UOEventPost *post = (UOEventPost *)self.event;
if(post.postWanted == YES){
    [wantThis setBackgroundImage:[UIImage imageNamed:@"wanted@2x.png"] forState:UIControlStateSelected];
    [wantThis setSelected:TRUE];
    wantThis.titleLabel.text = [NSString stringWithFormat:@"Wanted"];
}else {
    [wantThis setSelected:FALSE];
}

编辑

  savedState = [[NSUserDefaults standardUserDefaults]boolForKey:@"TheSavedState"];

UOEventPost *post = (UOEventPost *)self.event;
if(post.postWanted == YES){
    [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"TheSavedState"];
}else {
    [[NSUserDefaults standardUserDefaults]setBool:NO forKey:@"TheSavedState"];
}

if(!savedState){
    [wantThis setSelected:FALSE];
}else {
    [wantThis setBackgroundImage:[UIImage imageNamed:@"wanted@2x.png"] forState:UIControlStateSelected];
    [wantThis setSelected:TRUE];
    wantThis.titleLabel.text = [NSString stringWithFormat:@"Wanted"];
}
4

3 回答 3

1

使用 nsuserdefaults,因此只要用户拥有您的应用程序,它就会保存。您可以在需要时覆盖它。

于 2012-05-08T00:00:26.320 回答
0

在我看来,您可以将selected状态存储为 a BOOL,然后稍后再读回来。研究在会话NSUserDefaults中保留这样的信息。(为您的特定应用程序执行此操作的最佳方法可能是为NSArray用户想要参与的每个事件存储一个包含标识符。)

于 2012-05-08T00:02:40.990 回答
0

只需将状态写入文件即可。从中读取,onLoad。问题解决了。如果您需要帮助,请查看在 ios 中读写文件。或者您也可以使用设置。即使用户完全退出应用程序,它也会保持状态。

于 2012-05-08T00:26:06.557 回答