Ci scusiamo per la domanda di base, ma questo mi turba da un po 'di tempo.UILabel non si aggiorna
ho creare una vista dei dettagli da un datto e cercare di impostare dinamicamente le sue etichette, ma non vengono aggiornati:
- (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];
}
le connessioni in Interface Builder sono impostati. La scheda Connessioni per il proprietario del file mostra
'myLabel' - 'Label (myLabel)'
qualche idea del perché il valore non sta arrivando?
Un paio di osservazioni:
- Ho anche un IBAction collegati. Questo metodo viene chiamato correttamente quando I fa clic sul pulsante connesso.
- Ho alcuni suggerimenti per la mia istruzione NSLog , se questo dovrebbe non utilizzare tmpVC.myLabel.text, ma restituisce anche NULL.
- myLabel è dichiarato come IBOutlet UILabel * myLabel nell'interfaccia. La proprietà è definita come non anatomica, retain.
Ecco la Luce:
Dopo aver giocato intorno con esso per un po 'di più ho spostato la dichiarazione pushViewController sopra gli aggiornamenti delle etichette. Questo ha risolto gli aggiornamenti delle etichette.
codice di lavoro è simile al seguente:
- (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];
}
Ma io non capisco perché ho bisogno di spingere il mio viewController prima ???
si fa a rilasciare ovunque nel codice diverso da quello dealloc? – Codezy