Exception lors de la suppression ligne dans TableView
-
20-09-2019 - |
Question
Chaque fois que je frappe le code DeleteRows, je reçois une exception en me disant que le nombre de lignes avant et après la mise à jour doivent être les mêmes. Voici le texte officiel:
Motif: mise à jour non valide: nombre incorrect de lignes dans la section 0. Le nombre de lignes contenues dans une section existante après la mise à jour (3) doit être égal au nombre de lignes contenues dans cet article avant la mise à jour (3), plus ou moins le nombre de lignes insérées ou supprimées de cette section (0 inséré, supprimé 1).
Mon code est:
public override void CommitEditingStyle (UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
{
if (editingStyle == UITableViewCellEditingStyle.Delete)
{
tableView.DeleteRows(new [] { indexPath }, UITableViewRowAnimation.Fade);
// Remove the step from the set of calculations
_calculation.Steps.RemoveAt(indexPath.Row);
}
}
La solution
Vous avez probablement besoin de changer le nombre de retour dans
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section
pour la indexPath.section
soit inférieure à une avant la suppression.
répond ici: Supprimer ligne de uitableview se bloque
Autres conseils
Ce que je trouve qui a fonctionné pour moi était d'enlever tableView.DeleteRows (nouveau [] {} indexPath, UITableViewRowAnimation.Fade); Votre méthode devrait ressembler à ceci.
public override void CommitEditingStyle (UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
{
if (editingStyle == UITableViewCellEditingStyle.Delete)
{
// Remove the step from the set of calculations
_calculation.Steps.RemoveAt(indexPath.Row);
tableView.reloadData();
}
}