退出App并重新加载时保存UIButton的状态

时间:2012-05-07 23:56:52

标签: objective-c ios xcode uibutton save

我在视图上有自定义UIButton,当我按下它时,它会改变状态和img。当我退出视图并回到它时,UIButton的状态停留。但当我退出我的应用程序并再次启动它。我的自定义UIButton的状态恢复为默认状态。当我退出应用程序时,有没有办法可以保存该按钮的状态?

下面是一个示例图片

before http://i.minus.com/ibzHa1XCTDwSAJ.png

![after] 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"];
}

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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