J'ai implémenté le menu d'édition de ma classe UITableViewCell personnalisée. J'ai un petit problème de mise à jour d'une vue de table à l'intérieur de la classe de cellule de table personnalisée. Quelle est la meilleure approche pour le faire?Mise à jour de uitableview à partir de la cellule personnalisée après l'avoir modifiée
TIA
Précision: par le menu d'édition que je voulais dire une norme Couper/Copier/Coller ... menu, qui peut se conforme à un protocole standard UIResponder. Je veux couper/copier/coller le contenu des cellules, qui réside dans une structure de données (type d'arborescence de dossiers/fichiers). La cellule reflète uniquement les données.
Le menu apparaît sur le robinet & tenir sur la cellule de tableau. La table est dérivée de UITableViewController et créée à la volée (pas du xib). Les actions Couper/Copier sont autorisées pour les dossiers &, tandis que l'action Coller est autorisée uniquement pour les dossiers. En fait, je n'ai besoin de rafraîchir que la cellule du dossier, qui montre le nombre d'éléments à l'intérieur.
Donc, dans mon CustomCell dans le sélecteur de pâte, je fais ce qui suit:
- (void)paste:(id)sender {
... Perform a paste of data...
MyTableViewController *myTable = (MyTableViewController *) delegate;
[myTable performSelector:@selector(updateData) withObject:nil afterDelay:0.3];
}
En MyTableViewController:
- (void) updateData
{
[self.tableView reloadData];
}
La chose est que toutes les cellules, à l'exception de celui qui a été changé sont redessinés. Je le vois dans la fonction cellForRowAtIndex. Même si j'ajoute le sélecteur de pâte [self setNeedsDisplay] ça n'aide pas.
De plus, mes remplacements de cellules personnalisées fonction setHighlighted:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if (delegate)
[delegate copyableTableViewCell:self willHighlight:highlighted];
[super setHighlighted:highlighted animated:animated];
}
de sorte que le délégué (MyTableViewController) affiche un menu éditer. Et encore une fois la question est pourquoi la cellule modifiée ne se rafraîchit pas?
Merci
Votre question est un peu vague. Qu'est-ce que le "menu d'édition"? Une UIActionSheet peut-être, ou une nouvelle vue poussée sur la pile de navigation? Par "mise à jour", voulez-vous dire éditer, ajouter ou supprimer une cellule de vue de table? Publier du code, comme votre méthode 'cellForRowAtIndexPath:' dans la source de données de la vue tableau, serait également utile. – Endemic