Scope van een String
Dag,
Ik ben net begonnen met het leren programmeren van iPhone apps. Nu ben ik wat aan het oefenen met een app welke meerdere views heeft (vanuit de tabbar). Mijn vraag is nu hoe ik een stringwaarde uit view1 mee kan geven naar view 2 of view 3. Kan iemand me helpen? JeePeeS |
Als je correct programmeert volgens de Cocoa design patterns, moet je eigenlijk geen data doorgeven van viewcontroller naar viewcontroller (uitzondering zijn uinavigationcontroller en modalviewcontroller). Op die manier raken de viewcontrollers afhankelijk van elkaar.
Het beste is programmeren via de Model-View-Controller principe. Dit houdt in dat je eigenlijk de stringwaarde moet hebben in je model of appdelegate. Je kan het ook opslaan als key in NSUserdefaults en zo data doorgeven. Maar goed om het simpel te houden het volgende: Je kan de stringwaarde doorgeven aan de stringwaarde van je volgende view, via een NSString property. Je declareert in view 2 Code:
NSString *string; Code:
@property (copy) NSString *string; Code:
view2.string = @"Hier je stringwaarde"; Code:
view2.string = self.string; Code:
view2.string = self.textField.text; |
Dank je. Ik heb een app en in een viewcontroller (instellingen) wil ik de user een datum laten selecteren. In view 1 wil ik de geselecteerde datum gebruiken voor een berekening. In view 2 wil ik de datum ook weer gebruiken.
Welke methode is nu het handigst? |
Als je een gebruiker iets wil laten instellen, dan is het handig als de data wordt opgeslagen. Het makkelijkst is via NSUserdefaults.
Er van uitgaande dat je een UIDatePicker gebruikt om de datum te selecteren (genaamd datepicker) doe je dit in je instellingen viewcontroller: Code:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; Code:
NSDate *chosenDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"dateKey"]; |
Dank je. Dit is exact wat ik nodig had. :)
|
Alle tijden zijn GMT +2. Het is nu 15:29. |