Comment procéder pour envoyer un message reloadData à tableView à partir d'un tableViewCell personnalisé?l'envoi de données de rechargement à partir de la cellule de table personnalisée?
Répondre
La façon la plus simple d'implémenter cela est d'utiliser Delegates.
Définir un protocole dans votre CustomTableCell.h comme ceci:
@protocol CustomTableCellDelegate <NSObject>
@required
- (void)reloadMyTable;
@end
L'étape suivante est de fournir un délégué var:
@interface CustomTableCell : UITableViewCell {
id<CustomTableCellDelegate> delegate;
}
@property (assign) id<CustomTableCellDelegate> delegate;
Marque shure vous Synthétiser votre délégué-variable dans le CustomTableCell .m.
Vous avez maintenant un délégué défini. Il y a trois étapes restantes:
Lorsque vous créez votre cellule, vous devez définir le délégué pour cette cellule comme
cell.delegate = self;
Marque SHURE votre TableViewController implémente votre CustomTableCellDelegate. Si vous faites cela, vous serez obligé de mettre en œuvre le - (void) reloadMyTable dans votre TableViewController:
- (void)reloadMyTable {
[self.tableView reloadData];
}
La dernière étape consiste à appeler cette méthode à partir de votre CustomTableCell comme ceci:
if (self.delegate != NULL && [self.delegate respondsToSelector:@selector(reloadMyTable)]) {
[delegate reloadMyTable];
}
En savoir plus sur Délégation here. En bref: Vous définissez un protocole dans votre CustomTableViewCell, implémenté par TableViewController. Si vous envoyez un message de méthode à votre délégué, ce message sera envoyé à votre TableViewController.
La meilleure façon de créer une notification. Dans votre tableView, vous devez le créer. Il est très facile, quelque chose comme ceci:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reloadTableView:)
name:@"reloadTable"
object:nil];
Ensuite, vous devez créer méthode:
- (void)reloadTableView:(NSNotification *)notif {
[self.yourTableName reloadData];
}
et ne pas oublier de supprimer la notification:
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"reloadTable" object:nil];
}
et en yo ur personnalisée tableViewCell quand vous voulez recharger la table dont vous avez besoin:
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTable"
object:nil];
Elégant et moins de code que la solution Delegates. +1 – user623396
Je n'appellerais pas cela le meilleur moyen, beaucoup préfèrent la délégation moi-même. – tagy22
- 1. Ombre UILabel à partir de la cellule sélectionnée couleur personnalisée
- 2. table de rechargement
- 3. Mise à jour de uitableview à partir de la cellule personnalisée après l'avoir modifiée
- 4. Problème de rechargement de données UITableView
- 5. Suppression d'une cellule personnalisée dans la vue de table
- 6. Arrêt de MKMapView à partir du rechargement
- 7. Définir la couleur de la cellule du tableau à partir de la base de données
- 8. Récupération de la valeur de la cellule à partir de la table dans jQuery
- 9. augmenter la hauteur de la cellule personnalisée
- 10. données de sélection de table à partir de la date
- 11. Cellule de la table FindControl
- 12. Vue de table avec cellule personnalisée (par programmation)
- 13. JQuery sélectionnez la cellule de table, cellule suivante table conditionnellement
- 14. Arrête le rechargement de UITableViewCell lorsque la cellule réapparaît!
- 15. Actualisation de vue de table dans la vue parente après la sélection de l'enfant à l'aide des données de rechargement
- 16. Base de données Wordpress avec table personnalisée
- 17. changer la couleur de fond de la cellule personnalisée
- 18. Positionnement de l'expansion de la boîte d'effondrement à partir d'une cellule de table avec jquery
- 19. données de cellule de table de changement iTextSharp
- 20. Cellule personnalisée de la fuite de la plume
- 21. À propos de uitextfield sur la cellule de table
- 22. Faire défiler jusqu'à la dernière table Afficher la cellule Affiche les données de la première cellule
- 23. Changement de l'image de la cellule à partir d'une autre cellule textclick
- 24. récupère la valeur de la cellule de ligne de table
- 25. La cellule personnalisée échoue juste
- 26. Rechargement de UITableViewCell sur la sélection
- 27. Comment sélectionner la cellule à partir de la macro
- 28. Créer une table DB à partir de la table de jeux de données
- 29. Problème de déqueue de cellule lorsque la table se trouve dans la vue de contenu de cellule d'une autre table
- 30. Problème avec l'image dans la cellule personnalisée
jusqu'à présent la seule chose que je ne suis pas clair est l'endroit où vous dites: assurez-vous de r tableviewcontroller implémente votre délégué TableCell personnalisé. – Brodie
mépris je l'ai eu, merci – Brodie
@audience. Où puis-je mettre le code de la dernière étape? Je veux dire dans quelle méthode il devrait être appeler –