2011-02-13 1 views
0

J'ai une table créée dynamiquement à chaque fois avec textfield dans la cellule de tableview. Je peux lire sur la valeur à un moment de textfield dans ma sous-classe de tableviewcell avec ceci:Comment lire/stocker des valeurs de tous les champs de texte (textfield est dans la cellule de uitableview)?

- (void)textFieldDidEndEditing:(UITextField *)textField { 

NSLog(@"Text :%@ ",textField.text); 
} 

Mais je veux stocker toutes les valeurs entrées dans tous textfield ... comment dois-je approcher? Je sais que je peux utiliser pour la boucle, mais je ne suis pas capable d'obtenir les conditions (combien de temps il devrait fonctionner) dans la boucle

Répondre

0

Une manière de faire est de marquer chaque champ de texte avec l'index de la cellule qu'il contient

Vous pouvez créer un NSMutableArray avec les chaînes pour chaque cellule et, dans la fonction textFieldDidEndEditing, extraire le tag du champ de texte et placer la nouvelle chaîne dans l'index de tableau approprié.

Veillez à effacer les zones de texte et à réinitialiser les points lorsque la cellule est réutilisée.

+0

J'utilise la sous-classe tableviewcell pour générer dynamiquement ma cellule, et je n'ai jamais utilisé textField avec tag ... pourriez-vous élaborer ou citer un exemple? – AKG

1

Ne stockez jamais de données dans la vue. Et dans ce cas, UITableViewCell est votre vue. Lorsque vous déplacez la cellule hors de l'écran, il est (espérons-le) réutilisé et le texte aurait disparu.

enregistrer les données à votre modèle de données dans textFieldDidEndEditing:

- (void)textFieldDidEndEditing:(UITextField *)textField { 
    //           | cell.contentView | 
    UITableViewCell *cell = (UITableViewCell *)[[textField superView] superView]; 
    NSIndexPath *indexPath = [tableView indexPathForCell:cell]; 
    MyObject *mydataObject = [self myObjectAtIndexPath:indexPath]; 
    mydataObject.text = textField.text; 
} 

il n'y a aucun moyen de boucle à travers tous les (je sais visibleCells) des cellules dans un UITableView. Parce qu'il n'y a pas de cellule pour l'article 10 si seulement les cellules 1 à 5 sont à l'écran. Et si vous avez fait défiler jusqu'à la cellule 10, la cellule 1 n'est plus là.

+0

J'utilise une sous-classe UITableViewCell pour créer ma cellule dans tableview, je pense que je ne peux pas utiliser [tableView indexPathForCell: cell – AKG

Questions connexes