iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   NSUserDefaults laden in meerdere viewcontrollers (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/150569-nsuserdefaults-laden-meerdere-viewcontrollers.html)

Harpets 13-01-14 17:51

NSUserDefaults laden in meerdere viewcontrollers
 
Hallo iedereen,

Ik maak gebruik van meerdere viewcontrollers in een app, waaronder een 'home' en een 'instellingen' view.
In de instellingen viewcontroller heb ik een control aangemaakt waarmee een gebruiker de achtergrond kan kiezen en opslaan. Hij slaat de keuze op in NSUserDefaults en onder viewdidload. Als ik de app sluit en opnieuw start, laat hij de gekozen kleur correct zien als achtergrond. Dat is dus gelukt.

Het lukt mij alleen niet om de opgeslagen keuze in NSUserDefaults in een andere viewcontroller (bv mijn 'home') op te roepen. Kan iemand mij uitleggen hoe ik dit aan zou moeten pakken?

Dank

Whacko 14-01-14 11:09

Op precies dezelfde manier als je het doet in je instellingen. Dit verhaal klinkt voor mij alsof je ergens een voorbeeld project hebt gedownload, en je geen idee hebt van wat je aan het doen bent.
Geef even wat meer informatie over waarom het niet werkt, dan kunnen we je verder helpen.

clublime 31-01-14 14:17

// je haalt je user prefs op met deze regel:
NSUserDefaults * userPreferences = [NSUserDefaults standardUserDefaults];
// en haalt er een waarde uit op deze manier (jouwWaarde aanpassen):
NSString * jouwWaarde = [[NSUserDefaults standardUserDefaults] stringForKey:@"jouwWaarde"];

Boike12 08-02-14 21:17

NSUserDefaults
 
Normaal sla je een integer als volgt op:
[[NSUserDefaults StandardUserDefaults] setInteger:integernaam forKey:@"Key"];

Zo laad je een integer weer:
integernaam = [[NSUserDefaults StandardUserDefaults] integerForKey:@"Key"];

Je integer wordt dus opgeslagen als "Key". Je kunt deze nu overal in elke view benaderen.
Succes!


Alle tijden zijn GMT +2. Het is nu 01:51.