Dez 172011
 

ios, xCode, objective-c, storyboards, ipad, iphone, tutorial, beispiel, beispiele, schulung, schulungen, training, seminar, seminare,

SettingsBundle

SettingsBundle sind eine tolle Sache. So hat dann eine iOS-App in der Settings-App einen eigenen Bereich, wo der Benutzer Informationen hinterlegen kann, ohne Eure Anwendung starten zu müssen. Beispielsweise Username/Passwort angaben, oder andere wichtige Voreinstellungen.

In diesem VideoPodcast zeige ich, wie man einer Anwendung ein s.g. SettingsBundle hinzufügen kann.

Quelltext (Xcode-Projekt) zum Podcast 025 mit dem Titel SettingsBundle

Viel Spaß damit

herzlichst
Euer Frank Jüstel

  3 Responses to “Der sechzehnte AdventsPodcast 16.12.2011”

  1. Hallo Frank,
    mir ist aufgefallen, dass man in der Anwendung selbst jetzt den Slider und den Switch mit dem Button nicht mehr speichern kann. Das Textfeld funktioniert aber noch zu speichern.
    Gibt es da einen bestimmten Grund für? Mir fällt auf den ersten Blick keiner ein.
    Ich bin nur davon ausgegangen, dass ich jetzt über beide Wege die Konfiguration speichern kann.
    mfg
    Sebastian

    • Hallo Sebastian,

      moment, ich prüfe das mal nach…Melde mich gleich noch einmal…

    • WHO, SUPER PLUS EINS für Sebastion!

      Da hatte ich einen Fehler gemacht :-)

      Denn wenn in der Methode saveDefaults der Wert für das TextFeld gespeichert wird, zieht sofort der Observer und führt loadDefaults aus. Dabei wird der soeben eingestellte Wert für den Switch und den Slider mit den vorherigen Werten überschrieben!

      Lösung: Man muss in saveDefaults den Listener, bzw. den Observer abschalten, dann die Werte speichern und dann den Observer wieder einschalten! DANKE SEBASTIAN !!!

      - (IBAction)saveDefaults:(id)sender
      {
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

      // Observer abmelden, damit nach dem Speichern des TextFields gleich die “alten” Defaults für
      // switch3d und slider geladen werden!
      [[NSNotificationCenter defaultCenter] removeObserver:self
      name:NSUserDefaultsDidChangeNotification
      object:nil];

      [defaults setObject:self.textField.text forKey:@"textField"];
      [defaults setBool:self.switch3d.on forKey:@"switch3d"];
      [defaults setFloat:self.slider.value forKey:@"slider"];

      [defaults synchronize];

      // Observer wieder anmelden
      [[NSNotificationCenter defaultCenter] addObserver:self
      selector:@selector(loadDefaults)
      name:NSUserDefaultsDidChangeNotification
      object:nil];

      }

 Leave a Reply

(erforderlich)

(erforderlich)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>