繁体   English   中英

保存UIButton状态的iOS

[英]save UIButton state iOS

我有一个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状态的代码。

通过以下方式使用它:

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

要检索它,

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

将按钮的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;
    }

}

这是一个例子:

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

我在哪里:

static NSString *hasLaunchedOnceKey = @"HasLaunchedOnce";

在@implementation语句之前声明。

请参阅以获取详尽的教程。

**注意:您无需在任何类型的plist文件afaik中声明任何内容。 您只需检查并设置这些键,如果它们不存在,它们将被动态创建。 无论如何,对我来说就是这样。

编程愉快!

我的方法太简单了..您不需要采用任何其他变量。 初始化时,将按钮标签设置为零,然后再使用它。

  - (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];
      }
  }

谢谢与欢呼..可能会有所帮助..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM