2010-12-10 8 views
3

Ich baue eine App, wo ein Benutzer verschiedene Benutzernamen bereitstellen kann, die er/sie hat. Die Vision ist, dass der Benutzer UITableViewCell hinzufügen und entfernen kann, um einen Benutzernamen einzugeben.Dynamisch Hinzufügen und Entfernen von UITableViewCells zu UITableView

Jetzt habe ich eine gruppierte UITableView und auf der rechten Seite von jedem UITableViewCell habe ich eine UIButton, die eine andere Zelle der Tabelle mit einem UITextField hinzufügt. Nach der ersten Zelle hat jede Zelle eine Schaltfläche zum Löschen. Ich versuche, das UIButton diese Zeile löschen zu lassen. Ich habe die IBAction, die die Zelle entfernt, das einzige Problem ist, es löscht nicht die richtige Zeile.

Was ist der beste Weg zu tun, was ich versuche zu tun? Ich weiß nicht, wie man das bei Google richtig sucht. Ich bin sicher, dass jemand getan hat, was ich versuche zu tun.

Vielen Dank für jede Hilfe im Voraus!

Antwort

7

Ähnlich wie Derek oben gesagt - UITableViewController bietet bereits Funktionalität zum Löschen von Zeilen.

Umschalten einer UITableView bearbeiten, so etwas wie: [self.tableView setEditing:!self.tableView.editing animated:YES];

Aufschalten tableView:canEditRowAtIndexPath: mit so etwas wie (da es klingt wie Sie erste Reihe löschbaren nicht möchten, dass Ihre sein):

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    if ([indexPath row] == 0) { 
      return NO; 
    } 

    return YES; 
} 

Auch überschreiben tableView:commitEditingStyle:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [self.dataArray removeObjectAtIndex:[indexPath row] - 1]; 

     // delete the row from the data source 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; 
    } 
} 

Hoffe, das hilft!

2

Es klingt wie Sie versuchen zu codieren, was eine Tabellenansicht bereits hat. Schauen Sie sich die integrierten Bearbeitungsfunktionen einer Tabellenansicht an und Sie werden feststellen, dass Sie diese Tasten nicht als Tabellenansichten haben müssen und die Delegierten Editwing-Funktionen eingebaut haben.

Ihr Kommentar zum Löschen der falschen Sache lässt mich nachdenken Sie haben ein Problem mit der Übereinstimmung von Zeilennummern mit Indizes Ihrer Quelldaten.

Verwandte Themen