【问题标题】:saving state of UIButton when exiting App and reloading it退出应用程序并重新加载时保存 UIButton 的状态
【发布时间】:2012-05-07 23:56:51
【问题描述】:

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

下面是示例图片

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

【问题讨论】:

  • 你试过NSUserDefaults吗?
  • 是的,我有,检查我新编辑的代码
  • 保存到 NSUserDefaults 后执行以下操作:[[NSUserDefaults standardUserDefaults] synchonize]。这将保存它。
  • 同步使我的应用崩溃

标签: objective-c ios xcode uibutton save


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我尝试过使用 NSUserDefaults,但之前没有用,请检查我编辑的代码
      猜你喜欢
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多