J'ai une page de paramètres dans mon application où j'ai un UISwitch
. Tout ce dont j'ai besoin, c'est juste de faire passer l'état ON/OFF à NSUserDefault
. Initailly mon interrupteur est éteint J'entre dans les paramètres ON lorsque je reviens à ma vue principale et entrer dans les paramètres de retour l'état du commutateur revient à OFF.UISwitch avec NSUserDefault
Voici le code:
if ([indexPath row] == 4 && [indexPath section] == 0)//cellForRowAtIndexPath
{
UISwitch *myst =[[UISwitch alloc]initWithFrame:CGRectMake(170, 10, 30, 30)];
[myst addTarget:self action:@selector(state:) forControlEvents:UIControlEventValueChanged];
[cell.contentView addSubview:myst];
}
-(IBAction)state:(UISwitch *)sender
{
NSUserDefaults *standardDefaults =[NSUserDefaults standardUserDefaults];
if (sender.tag == 0) {
if (sender.on ==1) {
[standardDefaults setObject:@"On" forKey:@"val"];
}
}else if(sender.on == 0){
[standardDefaults setObject:@"Off" forKey:@"val"];
}
[standardDefaults synchronize];
}
EN viewWillAppear:
[super viewWillAppear:animated];
NSUserDefaults *standardDefaults =[NSUserDefaults standardUserDefaults];
if ([[standardDefaults stringForKey:@"val"]isEqualToString:@"On"]) {
myst.on=YES;
}else if ([[standardDefaults stringForKey:@"val"]isEqualToString:@"Off"]){
myst.on=NO;
}
je dois faire l'état à savoir si se utilisateur sur il devrait être sur l'état même après la mise en vues ou arrêter et revenir l'application. Comment faire pour que cet état persiste?
vous dire l'état initial "myst.on = NO;" Est-ce correct? –
Non, état que vous avez stocké dans NSuserDefault. –
Je suppose que c'est OFF! –