Ich habe einen UISwitch, mit dem die Soundeffekte gedämpft werden. Wenn der Schalter auf ON gestellt ist, sind die Soundeffekte stumm. Der Status wird mit NSUserDefaults gespeichert. Es funktioniert großartig. Aber wenn die App von der allerersten Zeit nach der Installation gestartet wird, und Sie zu den Einstellungen kamen und der Schalter auf OFF steht, aber kein Ton. Aber wenn ich den Schalter an und dann wieder aus drücke, funktioniert der Soundeffekt.UISchalten Sie den Standardwert auf OFF, wenn Sie die App zum ersten Mal starten.
Wie schalte ich den Standardwert des Schalters auf OFF.
Ich habe ähnliche Beispiele gesehen, aber ich bekomme es nicht zur Arbeit.
Im ersten Viewcontroller habe ich diesen Code:
- (void)viewDidLoad {
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
if ([[NSUserDefaults standardUserDefaults]objectForKey:@"switchKeyLjud"]==nil)
{
[[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"off"];
}
if ([[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"off"]) {
ImageViewLjud.hidden = YES;
}
}
und in den Einstellungen Viewcontroller:
- (void)viewDidLoad {
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
self->switchOutletLjud.on = ([[standardDefaults stringForKey:@"switchKeyLjud"]
isEqualToString:@"On"]) ? (YES) : (NO);
if ([[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"On"]) {
[ImageViewLjud setImage:[UIImage imageNamed:@"ljudOFF.png"]];
}
else {
[ImageViewLjud setImage:[UIImage imageNamed:@"ljudON.png"]];
}
}
und dies ist der Schalter
- (IBAction)switchLjudChanged:(UISwitch *)sender {
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
if (sender.on == 0) {
[standardDefaults setObject:@"Off" forKey:@"switchKeyLjud"];
} else if (sender.on == 1) {
[standardDefaults setObject:@"On" forKey:@"switchKeyLjud"];
}
if ([[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"On"]) {
[ImageViewLjud setImage:[UIImage imageNamed:@"ljudOFF.png"]];
}
else {
[ImageViewLjud setImage:[UIImage imageNamed:@"ljudON.png"]];
}
[standardDefaults synchronize];
}
Vielen Dank für jede Hilfe! !
Vielen Dank für Ihre Antwort, ich sah, dass ich den falschen Code für den ersten ViewController, in der ViewDidLoad, ich habe nicht die erste "if-Anweisung". Grüße Daniel – user3266053