Comment est-il possible de supprimer toutes les lignes de UITableView en même temps? Parce que quand je recharge la vue de table avec de nouvelles données, j'insère encore de nouvelles lignes:
- (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;
}
Je vous remercie.
Fais ça.
Avant de recharger la table avec
[tableView reloadData];
Supprimez tous les objets de votre tableau tableView (Le tableau qui a rempli votre tableView) Par exemple.
[myArray removeAllObjects];
[tableView reloadData];
FYI, La solution ci-dessus "Supprimez toutes vos sources de données, puis appelez reloadData." Cela ressemble à ce qu'ils préconisent:
TableView.dataSource = nil;
[TableView reloadData];
J'ai essayé ça et ça a semblé marcher. Sauf qu'iOS 8.1, j'ai eu des plantages aléatoires. Et je veux dire au hasard, comme dans, je pourrais exécuter ce code 10x et il se planterait 1x. Donc, j'ai utilisé la réponse recommandée de:
[myArray removeAllObjects];
[tableView reloadData];
et maintenant je vais bien.
Supprimez tous vos dataSource
, puis appelez reloadData
.
On dirait que vous n’effacez pas votre collection de données (NSArray
) avant d’ajouter des données. UITableView
affichera généralement toutes vos données de tableau. Si vous ne voulez pas de lignes/données précédentes, vous devez vider votre tableau avant de lui ajouter de nouvelles informations. Puis appelez [yourTableView reload]
effacez d'abord vos anciennes données
myArray = nil;
[tableView reloadData];
puis chargez vos nouvelles données
myArray = newData;
[tableView reloadData];