Ich lade eine UITableViewCell, die zwei markierte Etiketten enthält. Der Benutzer wird die aktuelle Ansicht mit dem folgenden Code verlassen und zu einer anderen Ansicht wechseln. Ein Name-Wert wird dort festgelegt und der Benutzer kehrt zu dieser Ansicht zurück (Code unten). Ich weise den Namen, den sie in der anderen Ansicht festgelegt haben, dem Namensetikett zu. Das funktioniert, aber ich bekomme ein neues Label auf meinen anderen Labels. Es scheint, ich behalte zwei Versionen dieser Zelle. Nicht ganz sicher. Irgendwelche Vorschläge, was diese Art von Verhalten verursachen könnte?Laden von Zellen über die Spitze und referenzierende Komponenten in ihnen
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
if(indexPath.section == 0)
{
cell = [tableView dequeueReusableCellWithIdentifier:@"CellNameIdentifier"];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"CellentName" owner:self options:nil];
cell = cellName;
//self.cellName = nil;
}
}
return cell;
}
- (void)viewDidAppear:(BOOL)animated {
UILabel *startdate = (UILabel *)[cellName viewWithTag:1];
startdate.text = aName;
[super viewDidAppear:animated];
}
Ich folge nicht. EinName kommt von meiner Klasse appdelegate. Es ist also immer als Instanz verfügbar. Ich sollte in diesem Fall keine Objektdaten an die zweite Ansicht übergeben müssen, oder? Ich denke, dass in cellForRowAtIndexPath eine Änderung erforderlich ist, "zeigt an, was in diesem Objekt gespeichert ist", um richtig zu funktionieren? – 4thSpace
Werfen Sie einen Blick auf das Apple-Beispielprojekt für SQLiteBooks, um ein detailliertes Codebeispiel zum Übergeben und Bearbeiten von Objekten als Eigenschaften anzuzeigen. – slf