Sorry die Grundfrage, aber das nervt mich schon eine Weile.UILabel nicht updaten
ich ein Detail aus einem uitable sehen und versuchen, dynamisch ihre Etiketten zu setzen, aber sie werden nicht aktualisiert:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myObject *tmpObj = [[myObject objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil];
[tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText"
NSLog(@"%@", tmpVC.myLabel); // NSLog SHOWS NULL
[self.navigationController pushViewController:tmpVC animated:YES];
[tmpObj release];
}
die Verbindungen im Interface Builder festgelegt werden. Die Registerkarte Verbindungen für Dateibesitzer zeigt
'myLabel' - 'Label (myLabel)'
irgendwelche Ideen, warum der Wert nicht durchkommt?
Noch ein paar Bemerkungen:
- Ich habe auch ein IBAction verbunden. Diese Methode wird ordnungsgemäß aufgerufen, wenn ich auf die verbundene Schaltfläche klicke.
- Ich habe ein paar Hinweise auf meine NSLog-Anweisung, ob das sollte nicht besser tmpVC.myLabel.text verwenden, aber versuchen, gibt auch NULL zurück.
- myLabel wird als IBOutlet UILabel * myLabel in der Schnittstelle deklariert. Die Eigenschaft ist definiert als nichtatomare, behalten.
ES GIBT DAS LICHT:
Nach dem Spiel, um mit ihm ein bisschen mehr zog ich die Pushviewcontroller Aussage über den Label-Updates. Das löste die Etikettenaktualisierungen.
Arbeits Code sieht wie folgt aus:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myObject *tmpObj = [[myObject objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil];
[self.navigationController pushViewController:tmpVC animated:YES];
[tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText"
NSLog(@"%@", tmpVC.myLabel); // NSLog SHOWS NULL
[tmpObj release];
}
Aber ich verstehe nicht, warum ich zuerst meine Viewcontroller schieben müssen ???
tun Sie es überall in Ihrem Code freigeben andere als die dealloc? – Codezy