保存UIButton状态iOS

时间:2014-06-19 05:00:59

标签: ios nsuserdefaults

我有一个UIButton

- (IBAction)checkButton:(id)sender {

if (!checked) {
    [checkBoxButton setImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];
    checked = YES;
} else if (checked) {
    [checkBoxButton setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal];
    checked = NO;
}

}

我想保存用户输入,即使在应用关闭后,也会检查按钮的天气状况。帮我处理任何人的代码?我不知道使用NSUserDefaults保存BOOL状态的代码。

4 个答案:

答案 0 :(得分:1)

通过以下方式使用它:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool: checked forKey:@"Status"];
[defaults synchronize];

要检索它,

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL state = [defaults boolForKey:@"Status"];

答案 1 :(得分:0)

将按钮的Normalselected状态的图像设置为

[checkBoxButton setImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateSelected];
[checkBoxButton setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal];

并在IBAction设置

- (IBAction)checkButton:(id)sender {

    if (!checked) {
        [checkBoxButton setSelected:NO];
        checked = YES;
    } else if (checked) {
        [checkBoxButton setSelected:YES];
        checked = NO;
    }

}

答案 2 :(得分:0)

这是一个例子:

if ([[NSUserDefaults standardUserDefaults] boolForKey:hasLaunchedOnceKey])
{
    [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:hasLaunchedOnceKey];
    [[NSUserDefaults standardUserDefaults] synchronize]; //Saves the data
}

我所拥有的地方:

static NSString *hasLaunchedOnceKey = @"HasLaunchedOnce";

在@implementation语句之前声明。

有关详尽的教程,请参阅this

**注意:您不需要在任何类型的plist文件中声明任何内容。您可以简单地检查并设置这些密钥,如果它们不存在,它们将被动态创建。无论如何,对我来说都是这样的。

快乐的节目!

答案 3 :(得分:0)

我的方式太简单了..你不需要采取任何其他变量。在初始化时设置您的按钮标签ZERO并在使用之后。

  - (IBAction)checkButton : (id)sender {

      if ([sender tag] == 0) {
        [sender setImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];
        [sender setTag:1];
      } else   {
         [sender setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal];
        [sender setTag:0];
      }
  }

谢谢&干杯..可能会有所帮助..