2014-01-12 24 views
5

enter image description hereiOS7 Tableview Zeile löschen Best Practice

Auf dem iPhone gibt es ein Musterbeispiel dafür, wie eine Tableview Zeile in der Nachricht Apps zu löschen. Dies scheint drei separate Ansichten zu verwenden, um die Aufgabe auszuführen.

Meine Frage ist, ob es Abkürzungen gibt, um dies zu erreichen, oder erstellen Sie einfach drei Bildschirme und machen Sie das Bluten offensichtlich.

Vielen Dank.

Antwort

3

Ich bin nicht wirklich sicher, was Sie mit drei verschiedenen Ansichten bedeuten, aber das wäre die Lösung durch ein Beispiel sein, um eine Reihe von UITableView zu löschen:

http://www.appcoda.com/model-view-controller-delete-table-row-from-uitableview/

+0

Dank - ich werde meinen Weg durch das funktioniert - genau das, was ich suchte aber noch nicht gefunden. –

+0

Gern geschehen! Wenn es Ihr Problem behoben hat, bitte upvote & markieren Sie das Thema als gelöst. Wenn Sie weitere Probleme haben, fragen Sie einfach. – fahu

12

eine Reihe von Storyboard zu entfernen ist ziemlich einfach. Sie müssen nur zwei Methoden in Ihrer TableView-Datenquelle erben. Zuerst sagt, wenn eine Zeile gelöscht werden kann:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    return YES; 
} 

Zweitens wird die Zeile aus der Tabellenansicht zu entfernen:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft]; 
} 
+0

Es ist nicht die Codierung zum Löschen einer Zeile, die mich verwirrte, sondern die Art, wie die Ansicht (en) dem Benutzer präsentiert werden. Verwenden Sie eine Nummer oder können Sie eine verwenden? –

4

Folgende Schritte, die Sie folgen sollen, wenn jede Zeile aus einer Tableview zu löschen:

  1. Die indexPath der zu löschenden Zeile holen.

  2. Entfernen Sie die Zeile aus dem Datenmodell der TableView-DataSource.

[yourDataModel removeObjectAtIndex: indexPath.row];

  1. Aktualisieren Sie den Bildschirm, indem Sie tableView neu laden.

[tableView reloadData];

Lassen Sie mich wissen, wenn mehr Informationen benötigt werden.

6

Sie müssen die erforderlichen UITableViewDelegate- und UITableViewDataSource-Methoden implementieren.

Zuerst fügen Sie diese:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return YES; 
} 

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