2009-06-30 5 views
1

J'ai un UItableViewController avec une cellule personnalisée conçue à l'aide du constructeur d'interface. La cellule personnalisée a un bouton et une étiquette dessus. Le bouton lorsque le clic déclenchera une vue d'alerte avec invite. Une fois le texte saisi et appuyez sur OK, l'étiquette de la cellule affichera les informations mises à jour sur la table. Le problème est que l'étiquette ne sera pas mise à jour tant que je n'aurai pas cliqué sur l'une des cellules. Je ne peux pas utiliser [tableview reloaddata] parce que j'utilise IB et qu'il crée des fichiers .h et .m UItableViewCell séparés et c'est là que j'ai placé la vue d'alerte avec le code d'invite. Comment puis-je appeler les données de rechargement pour mettre à jour la table lorsque la vue d'alerte est fermée. J'ai placé [tableview reloaddata] dans le UItableViewController sous viewWillAppear, mais cela ne fonctionne pas.Problème avec UItableview recharger des données en utilisant l'affichage des alertes avec une invite sur une cellule personnalisée

Répondre

0

Vous pouvez conserver la référence à UITableViewController et appeler reloaddata à partir de la cellule.

0

Je suis assez nouveau dans le développement de l'iPhone, cependant, l'un des modèles de conception que j'ai vu encore et encore est la délégation. Cela vous permet d'étendre les fonctionnalités tout en conservant la réutilisabilité de vos composants. Je crois que vous pouvez définir un délégué pour un UIAlertView, puis implémenter le protocole sur votre principal UITableViewController via la définition @interface. Cela signifie que votre contrôleur sera averti des événements en rapport avec cette alerte particulière, à condition que vous définissiez la propriété delegate dans votre objet AlertView après l'instanciation.

Jetez un oeil à la fonction ...

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

Si vous configurez la délégation ci-dessus, la surcharge de cette fonction, vous devriez être en mesure d'appeler [tableview reloadData] lorsque l'affichage des alertes est particulièrement pressé .

En outre, existe-t-il une raison pour laquelle vous ne pouvez pas définir la méthode IBAction que le bouton appelle dans UITableViewController? Cela vous permettrait d'éviter de contourner le parent de la cellule, semble être une meilleure adhérence à MVC.

0

Je l'ai compris. Voir le code ci-dessous:

UItableView *tableView = (UItableView *)self.superview; 
[tableView reloadData]; 

Le self.superview est l'affaire!

Questions connexes