Сохранить и загрузить состояние UISwitch - PullRequest
2 голосов
/ 12 июля 2011

Я хочу сохранить состояние swtich и загрузить его при перезапуске программы.

[[NSUserDefaults standardUserDefaults] setBool:switchControl.on forKey:@"switch"];
[[NSUserDefaults standardUserDefaults] synchronize];

Это часть сохранения

BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];
NSLog(@"%@",test?@"YES":@"NO");
if(test == YES)
    [switchControl setOn:YES animated:YES];
else
     [switchControl setOn:NO animated:YES];

Эта часть должна бытьустановите переключатель в его значение. Я сделал это в методе viewdidload, потому что когда я закрываю приложение и перезапускаю его, я хочу, чтобы состояние переключателя устанавливало сохраненную часть.

Но он все еще показывает, что часть по умолчанию можетпомогите мне установить его?

1 Ответ

11 голосов
/ 12 июля 2011

Вы создали переключатель как IBOutlet со свойствами? Если так, то я думаю, что ваша проблема в том, что вы не называете свой switchControl self.switchControl.

Тогда ваше правильное заявление о сохранении станет

[[NSUserDefaults standardUserDefaults] setBool:self.switchControl.on forKey:@"switch"];
[[NSUserDefaults standardUserDefaults] synchronize];

Я бы переместил часть, которая устанавливает переключатель в viewWillAppear, и сделал бы это так:

- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];
  NSLog(@"%@",test?@"YES":@"NO");
  [self.switchControl setOn:test animated:YES];
}

Я также вынул ненужное if-утверждение для вас.

...