2013-07-11 6 views
-1

Est-il possible d'utiliser un UITableView pour pouvoir entrer une valeur dans le champ d'une base de données. Par exemple, si je devais avoir un UITableView pointant vers un champ dans une base de données et si je voulais entrer une nouvelle entrée dans la base de données - appuyez sur la cellule UITableView qui permettrait alors la saisie au clavier dans la cellule qui finalement finir par être un nouveau record dans la base de données ??UITableView Cell - Modifier?

+2

oui c'est possible .. – peko

+1

http://stackoverflow.com/questions/4123740/in-place-editing-of-text-in-uitableviewcell – stosha

Répondre

0

Oui il est possible ....

Vous pouvez utiliser des méthodes de délégué pour prendre des données forment des cellules que vous textField à votre contrôleur de vue parent puis enregistrer les données dans la base de données.

1

Ceci est possible, mais si quelque chose est possible ne veut pas dire que vous devriez le faire.

Vous pourriez vous demander pourquoi?

Bien! vous essayez d'entrer des données de vue directement à la base de données, c'est une très mauvaise pratique. Il y a beaucoup de raisons pour que ce soit mauvais, le majeur est l'efficacité et la sécurité. Vous devez envisager d'utiliser MVC pattern.

Maintenant, puisque c'est tout à fait possible, je vais expliquer l'idée sur la façon de le faire et conclure avec des liens qui auront de vrais exemples de code.

En tableView:cellForRowAtIndexPath: ajouter un TextField avec étiquette (pour obtenir le renvoi à l'avenir) et l'ajouter à contentView de la cellule et l'ont caché.

Désormais, dans tableView:didSelectRowAtIndexPath:, attribuez la propriété editing aux cellules YES.

Puis, en tableView:willBeginEditingRowAtIndexPath: obtenir la référence à la méthode textfield dans contentView en utilisant viewWithTag: et masquer les textLabela et Démasquer le champ de texte.

Dans le délégué de textfield textFieldDidEndEditing:, la propriété d'édition de la cellule est désactivée (vous devez conserver la référence) pour afficher l'élément de texte et masquer le champ de texte.

Dans tableView:didEndEditingRowAtIndexPath: écrivez des méthodes qui valideront les modifications de votre base de données.

Voici la liste des liens qui vous permettront de exemples de code:

Having a UITextField in a UITableViewCell

Accessing UITextField in a custom UITableViewCell

iOS Database Tutorial

Il n'y a pas d'exemples pour vos besoins « coz il mordit mauvaise façon de faire des choses.