Segue direkter Label Zugriff

Bullz

Mitglied
Thread Starter
Dabei seit
11.09.2011
Beiträge
63
Reaktionspunkte
0
hallo spiele mich gerade ein bisschen mit Segues rum ...

Habe einen ViewController und SecondViewController verbunden mit einer triggered Seques ... Ziel ist es einen Text auf einem Label auf dem SecondVC zu setzten und zwar mittels segues ..

ich habe eine funktionierende Version wo ich einen NSString message am SecondVC erstelle als Property und diese dann im DidLoad den Labeltext zuweise...

im SecondVC
Code:
- (void)viewDidLoad
{
    [super viewDidLoad];
	self.label.text = self.message;
}

im VC:
Message ist sowas wie eine Hilfsvariable für mich...
Code:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"ShowSVC"]) {
        SecondViewController *svc = segue.destinationViewController;
        svc.message = @"Hello ;-)";
        
    }
}

habe nun Frech wie ich bin probiert auf message zu verzichten und direkt das Label über das label anzusprechen und natürlich die message als property entfernt. Leider funktioniert es nicht. Das Label nimmt den Text nicht an.

Code:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"ShowSVC"]) {
        SecondViewController *svc = segue.destinationViewController;
        svc.label.text = @"Hello ;-)";
        
    }
}

hängt das irgendwie mit einem Refresh des SVC zusammen ? Weil das Label setze ich ja programmiertechnisch. Aber angezeigt wird es halt nicht.
 
Die Outlets sind zum dem Zeitpunkt, zu dem prepareForSegue aufgerufen wird, noch nicht gesetzt (Adresse zeigt noch auf 0x0), das heißt, du weist "nil" etwas zu, was natürlich garnix macht.

Normalerweise löst man sowas mittels Delegation. Für kleinere Sachen, wie zB dein Label Text, reichen auch properties.
 
Zurück
Oben Unten