UILabel updaten vanuit andere class
Beste iPhonecluppers,
Nog steeds probeer ik mijn kennis te vergroten op iPhone gebied. Ik heb nu mijn eerste iPhoneApp gemaakt. Nu wil ik graag op het tweede view (Tab Bar) de instellingen bepalen. Nu heb ik 2 UITextFields gemaakt op het tweede view en wanneer er op een button wordt er een functie uitgevoerd die doorlinkt naar een ander functie op de MainView.m .. Deze functie zou dus de waardes van de textlabels moeten updaten. Hieronder een versimpeld voorbeeld: FirstViewController . h @interface ... { IBOutlet UILabel *label1; IBOutlet UILabel *label2; } @property (nonatomic, retain) IBOutlet UILabel *label1; @property (nonatomic, retain) IBOutlet UILabel *label2; FirstViewController . m + (void) defLabels: (NSString *) naamLabel1: (NSString *) naamLabel2 { [label1 setText:[NSString stringWithFormat:@"%@", naamThuis]]; [label2 setText:[NSString stringWithFormat:@"%@", naamUit]]; } SecondViewController . h @interface ... { UITextField *inputVeld1; UITextField *inputVeld2; } - (IBAction) stelLabelsIn: (id) sender; SecondViewController . m - (IBAction) stelLabelsIn: (id) sender { [FirstViewController defLabels: [NSString stringWithFormat:@"%@", [inputVeld1 text]]:[NSString stringWithFormat:@"%@", [inputVeld2 text]]]; } Ik hoop dat ik dit duidelijk genoeg heb uitgelegd en dat iemand mij wil en kan helpen! |
Je probeert in een class method (defLabels) instance variables (label1 en label2) te wijzigen. Dit kan niet. Verander de "+" bij defLabels eens in een "-".
|
Citaat:
|
Je moet defLabels wel in de interface zetten van FirstViewController, anders snapt een andere class niet dat die functie bestaat.
|
Citaat:
Weet iemand toevallig een tutorial te vinden waar wordt uitgelegt hoe het werkt om variablen via een externe class aan te passen? Of een plek waar ik een werkend voorbeeld kan vinden van dit? |
Je kan ook je class tijdelijk aanmaken binnen je andere class en dan gewoon de functie uitvoeren (of meteen de variabelen wijzigen).
Code:
PlayerViewController *pvController = [[PlayerViewController alloc] init]; |
Kan je niet gewoon met delegates werken en de parameters meegeven?
Of begrijp ik je volledig verkeerd :D |
Citaat:
Citaat:
|
Wel met delegates kunt ge pointers naar functies gaan stockeren in een delegatevariabele. Waardoor je eigenlijk, zoals je zelf wilt, een functie oproepen die doorlinkt naar een ander functie.
Hoe dit werkt in objectif C weet ik niet echt. Ik gebruik ze enkel bij .net. |
hoe bekend ben je met Cocoa als delegates je niks zeggen? :confused:
|
Citaat:
|
Citaat:
|
Citaat:
Code:
- (IBAction) stelLabelsIn: (id) sender { |
Citaat:
En gebruik [ClassA.label1 setText:@"Moh!"]; om de text te veranderen ;) |
Citaat:
Citaat:
|
Citaat:
|
Citaat:
Misschien is het handiger als Niels zijn volledige source code ergens uploadt, dan is het gemakkelijker om aan het geven hoe het wel moet. Ik heb namelijk het idee dat sommige basisconcepten nog niet helemaal duidelijk zijn. |
Ja ik kan inderdaad wel de hele source online gooien, was toch geen plan om dit echt te distrubeteren.
Het gehele project is hier te vinden. De bedoeling van de app is dat het de tijd en score bijhoudt van een wedstrijd. Op het tweede tab wilde ik de instellingen zetten, zoals de tijd en de teams die spelen. Ik hoop deze uitleg de app wat duidelijker maakt en dat iemand mij kan wijzen op de fouten die ik heb gemaakt. Trouwens top, dat mensen blijven reageren en mij opweg willen helpen!!!:D |
Haha nu heb ik mijn project gepubliceerd en dan reageerd er niemand meer. Is er toch nog iemand die een poging zou willen wagen, mij te helpen?
|
Alle tijden zijn GMT +2. Het is nu 18:21. |