Pour ce que vous essayez de faire, votre meilleur pari est de rendre votre contrôleur de vue d'un <UITextFieldDelegate>
, définissez le délégué du champ de texte de votre cellule à soi-même, puis mettre en œuvre la textFieldDidEndEditing: méthode déléguée.
Changer votre fichier d'interface pour adopter le protocole
@interface YourViewController : UIViewController <UITextFieldDelegate>
Réglez ensuite le contrôleur de vue en tant que délégué de votre UITextField concerné (s) ...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
yourCustomCell.yourTextField.delegate = self
}
Et enfin mettre en œuvre
- (void) textFieldDidEndEditing:(UITextField *)textField.
Cette méthode sera appelée à chaque fois que l'utilisateur finit d'éditer votre UITextField, un Etant donné qu'il passe une référence à celui-ci, vous pouvez accéder à ses valeurs, effectuer toute validation dont vous pourriez avoir besoin et l'assigner au champ de texte.
l'étiquette est créée runtime? – KingofBliss
Je ne pouvais pas comprendre où est votre problème. Avez-vous besoin de mettre à jour le texte d'un UITextField et que ce champ de texte se trouve dans une cellule à laquelle vous n'avez pas de référence? – AYBABTU
oui il est créé au moment de l'exécution. Dans la méthode cellForRowAtIndexPath, je passe une valeur dans textfield qui doit être reflétée dans l'étiquette qui se trouve dans la cellule suivante. La valeur textfield doit rester telle quelle et la valeur de l'étiquette doit passer de 0 à quelque chose. – Sarah