J'ai un UISwitch dans mon application avec un dans mon ensemble de paramètres avec la même fonctionnalité. L'UISwitch dans mon application ne sauvegarde pas ses paramètres correctement. Quelqu'un peut-il voir quelque chose de mal avec le code?UISwitch ne répond pas aux changements NSUserDefault
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Set the application defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"No" forKey:@"isKgs"];
[defaults registerDefaults:appDefaults];
[defaults synchronize];
}
- (void)switchChanged
{
[[NSUserDefaults standardUserDefaults] setBool:unitSwitch.selected forKey:@"isKgs"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"SwitchGhanged:");
}
-(void)cellForRowAtIndexPath
{
[unitSwitch addTarget:self action:@selector(switchChanged) forControlEvents:UIControlEventValueChanged];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isKgs"])
{
[unitSwitch setOn:YES animated:NO];
}
}
Et voici les paramètres bundle
N'ai-je pas besoin de définir les paramètres par défaut qui s'enregistrent si l'utilisateur n'a jamais ouvert la page des paramètres? Si l'application n'a jamais enregistré de valeur pour une clé particulière, vous obtenez la valeur que vous avez indiquée dans registerDefaults. Sinon, la valeur sauvegardée remplace la valeur de départ –
Merci, je pense que le "on" au lieu de "sélectionné" tout fixé. –
@Faisal Vous devez le faire. Ma faute. –