2009-03-01 4 views
0

Der Aufruf [self.tableView reloadData] funktioniert einwandfrei, wenn Sie eine neue Zeile hinzufügen oder löschen. Wenn Sie alle Zeilen löschen und eine leere Tabelle anzeigen möchten, hat reloadData keine Auswirkungen. Alle Phantomzeilen sind noch vorhanden, bis die App erneut gestartet wird. Ich mache das auf der RootViewController, die eine UITableViewController ist. Gibt es eine andere Möglichkeit, die Tabelle in diesem Fall zu aktualisieren?Wie UITableView neu zu laden, wenn leer?

Antwort

1

Sie sollten versuchen,

- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths 
       withRowAnimation:(UITableViewRowAnimation)animation 

... auf der UITableView zu verwenden, wenn Sie ein paar Zeilen löschen, so dass Sie auch die Animation erhalten, wenn

Ansonsten ein

[tableView setNeedsDisplay]; 

löschen .. .might help

+0

setNeedsDisplay hatte nie Auswirkungen. Ich lösche aus der Datenbank und nicht eine Zeile nach der anderen. Nicht sicher, wie deleteRowsAtIndexPaths in diesem Fall verwendet werden kann. Ich muss nur den Tisch auffrischen. – 4thSpace

+0

Ich habe es herausgefunden. Löschte das Quell-Array nach dem Löschen aus der DB nicht. – 4thSpace