簡體   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