iOS - przekazywanie zmiennej do kontrolera
Mam widok z kontrolerem widoku i kiedy pokazuję ten widok na ekranie, chcę móc przekazywać do niego zmienne z klasy wywołującej, dzięki czemu mogę ustawić wartości etykiet itp.
Najpierw próbowałem utworzyć właściwość dla jednej z etykiet i wywołać ją z klasy wywołującej. Na przykład:
SetTeamsViewController *vc = [[SetTeamsViewController alloc] init];
vc.myLabel.text = self.teamCount;
[self presentModalViewController:vc animated:YES];
[vc release];
Jednak to nie zadziałało. Próbowałem więc utworzyć inicjator wygody.
SetTeamsViewController *vc = [[SetTeamsViewController alloc] initWithTeamCount:self.teamCount];
A potem wSetTeamsViewController
miałem
- (id)initWithTeamCount:(int)teamCount {
self = [super initWithNibName:nil bundle:nil];
if (self) {
// Custom initialization
self.teamCountLabel.text = [NSString stringWithFormat:@"%d",teamCount];
}
return self;
}
Jednak to też nie zadziałało. Po prostu ładuje dowolną wartość, którą podałem etykietę w pliku nib. Zaśmieciłem kodNSLog()
i przekazuje poprawne wartości zmiennych dookoła, po prostu nie ustawia etykiety.
Każda pomoc byłaby bardzo mile widziana.
EDYTUJ: Właśnie próbowałem ustawić zmienną instancji w moim wyznaczonym inicjatorze, a następnie ustawić etykietę w viewDidLoad i to działa! Czy to najlepszy sposób na to?
Ponadto, odrzucając ten kontroler widoku modalnego, aktualizuję również tekst przycisku w widoku wywołującego ViewController. Jeśli jednak ponownie nacisnę ten przycisk (aby ponownie wyświetlić widok modalny), podczas gdy inny widok jest animowany na ekranie, przycisk tymczasowo ponownie ma swoją oryginalną wartość (ze stalówki). Czy ktoś wie, dlaczego tak jest?