2015-06-02 3 views
0

привет у меня есть список вопросов, который пользователь может дать ответ только в YES или NO, поэтому у меня есть пользовательский checkbox с изображением checkbox_fill и пустой флажок. Когда кто-то выбирает YES, No будет пустым Checkbox и если выбрать НЕТ, YES будет пустым, а No будет Fill. теперь проблема в том, что я хочу сохранить локально эту выбранную кнопку, если ДА или НЕТ. и вернитесь, если пользователь переместится с одного экрана на другой. Мой код выглядит следующим образом: YES или NO.магазин checkbox значение на местном уровне и вернуться обратно

- (IBAction)btnCheckBoxfor1:(id)sender { 
    UIImage *selected = [UIImage imageNamed:@"checkbox_fill.png"]; 
    UIImage *notSelected = [UIImage imageNamed:@"checkbox.png"]; 

    if ([sender tag]==1) { // checkbox yes 
     if (![sender isSelected]) { 
      [sender setSelected:YES]; 
      [self.btnNO setSelected:NO]; 
      [self.btnNO setImage:notSelected forState:UIControlStateNormal]; 
      [self.btnYES setImage:selected forState:UIControlStateNormal]; 
     } 
    }else{ // checkbox no 
     if (![sender isSelected]) { 
      [sender setSelected:YES]; 
      [self.btnYES setSelected:NO]; 
      [self.btnYES setImage:notSelected forState:UIControlStateNormal]; 
      [self.btnNO setImage:selected forState:UIControlStateNormal]; 
     } 
    } 
} 

ответ

0

Используйте NSUserDefaults для хранения значения локально. Пожалуйста, проверьте ниже -

- (IBAction)btnCheckBoxfor1:(id)sender { 

     UIImage *selected = [UIImage imageNamed:@"checkbox_fill.png"]; 
     UIImage *notSelected = [UIImage imageNamed:@"checkbox.png"]; 


     if ([sender tag]==1) { // checkbox yes 

      if (![sender isSelected]) { 
       [sender setSelected:YES]; 
       [self.btnNO setSelected:NO]; 
       [self.btnNO setImage:notSelected forState:UIControlStateNormal]; 
       [self.btnYES setImage:selected forState:UIControlStateNormal]; 

       NSUserDefaults *boolUserDefaults = [NSUserDefaults standardUserDefaults]; 
       [boolUserDefaults setBool:YES forKey:@"CheckBox"]; 
       [boolUserDefaults synchronize]; 

      } 

     }else{ // checkbox no 
      if (![sender isSelected]) { 
       [sender setSelected:YES]; 
       [self.btnYES setSelected:NO]; 
       [self.btnYES setImage:notSelected forState:UIControlStateNormal]; 
       [self.btnNO setImage:selected forState:UIControlStateNormal]; 

       NSUserDefaults *boolUserDefaults = [NSUserDefaults standardUserDefaults]; 
       [boolUserDefaults setBool:NO forKey:@"CheckBox"]; 
       [boolUserDefaults synchronize]; 


      } 
     } 

Чтобы получить значение проверки -

BOOL isCheck =[[NSUserDefaults standardUserDefaults] boolForKey:@"CheckBox"]; 

Надеется, что это поможет вам. не

Update

Вызов ниже метода на ViewWillAppear -

- (void)setvalueCheckBox { 

    BOOL isCheck =[[NSUserDefaults standardUserDefaults] boolForKey:@"CheckBox"]; 

    UIImage *selected = [UIImage imageNamed:@"checkbox_fill.png"]; 
    UIImage *notSelected = [UIImage imageNamed:@"checkbox.png"]; 


    if (isCheck) { // checkbox yes 


      [sender setSelected:YES]; 
      [self.btnNO setSelected:NO]; 
      [self.btnNO setImage:notSelected forState:UIControlStateNormal]; 
      [self.btnYES setImage:selected forState:UIControlStateNormal]; 

      NSUserDefaults *boolUserDefaults = [NSUserDefaults standardUserDefaults]; 
      [boolUserDefaults setBool:YES forKey:@"CheckBox"]; 
      [boolUserDefaults synchronize]; 



    } 
    else{ // checkbox no 

      [sender setSelected:YES]; 
      [self.btnYES setSelected:NO]; 
      [self.btnYES setImage:notSelected forState:UIControlStateNormal]; 
      [self.btnNO setImage:selected forState:UIControlStateNormal]; 

      NSUserDefaults *boolUserDefaults = [NSUserDefaults standardUserDefaults]; 
      [boolUserDefaults setBool:NO forKey:@"CheckBox"]; 
      [boolUserDefaults synchronize]; 



    } 
} 
+0

как установить его снова, если выбрано ДА или НЕТ, если пользователь перейти к следующему экрану и обратно в предыдущий экран? – dilip

+0

Проверить выше обновление –

+0

оно хранится, но где отправитель в - (void) setvalueCheckBox? я удалил его, но по умолчанию он установил YES как selected.if i remove [sender setSelected: YES]; [self.btnNO setSelected: NO]; – dilip

Смежные вопросы