/ / UITableView zmaže všetky riadky naraz - Objective-C, UitableView, Uikit

UITableView zmazať všetky riadky naraz - objektív-c, uitableview, uikit

Ako je možné odstrániť všetky riadky z UITableView naraz? Pretože keď znova načítam zobrazenie tabuľky s novými údajmi, stále vkladám nové riadky:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

CustomTableViewCell *cell = (CustomTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CustomTableViewCell alloc] initWithFrame:CGRectZero] autorelease];
}

//... setting the new cell here ...

return cell;
}

Ďakujem.

odpovede:

46 pre odpoveď č. 1

To urobiť.

Pred opätovným načítaním tabuľky pomocou

[tableView reloadData];

Odstráňte všetky objekty z vášho poľa TableView (pole, ktoré naplnilo váš TableView) Napríklad.

[myArray removeAllObjects];
[tableView reloadData];

4 pre odpoveď č. 2

Odstráňte všetky svoje súbory dataSource, potom zavolajte reloadData.


4 pre odpoveď č. 3

FYI, vyššie uvedené riešenie „Vymažte všetky svoje dataSource a potom zavolajte reloadData.“ znie to, akoby sa zasadzovali za toto:

TableView.dataSource = nil;
[TableView reloadData];

Skúsil som to a zdalo sa, že to funguje. Ibaže v iOS 8.1 som dostal náhodné pády. A mám na mysli náhodne, ako v, mohol som ten kód spustiť 10x a 1x by sa zrútil. Použil som teda odporúčanú odpoveď:

[myArray removeAllObjects];
[tableView reloadData];

a teraz som dobrý.


2 pre odpoveď № 4

Zdá sa, že nevymazávate svoju zbierku údajov (NSArray) pred pridaním ďalších údajov. The UITableView zvyčajne zobrazí všetky údaje z vášho poľa. Ak nechcete predchádzajúce riadky / údaje, mali by ste pred pridaním nových informácií pole vyprázdniť. Potom zavolajte [yourTableView reload]


0 pre odpoveď č. 5

najskôr vymažte svoje staré údaje

myArray = nil;
[tableView reloadData];

potom načítajte svoje nové údaje

myArray = newData;
[tableView reloadData];