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/)
-   -   Scope van een String (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/82376-scope-string.html)

JeePeeS 14-01-11 15:49

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

Geno 14-01-11 17:14

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;
met als property:

Code:

@property (copy) NSString *string;
Daarna kan je in view1 de data zo doorgeven:

Code:

view2.string = @"Hier je stringwaarde";
of:

Code:

view2.string = self.string;
of vanuit een uitextfield:

Code:

view2.string = self.textField.text;
Niet vergeten view1.h te importeren in view2.m.

JeePeeS 14-01-11 17:23

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?

Geno 14-01-11 17:35

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];
[defaults setObject:datepicker.date forKey:"dateKey"];

In de view1 en view2 haal je zo de opgeslagen datum terug:

Code:

NSDate *chosenDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"dateKey"];

JeePeeS 14-01-11 17:43

Dank je. Dit is exact wat ik nodig had. :)


Alle tijden zijn GMT +2. Het is nu 15:29.