2017-10-19 46 views
0

J'ai 2 vues et un contrôle de navigation. Le premier, ajoute des données dans un tableau. Ces données sont affichées dans ma deuxième vue (est un tableviewController). Je peux effacer certaines données de mon tableau directement depuis ma tableView, et j'enlève une ligne en même temps. Lorsque j'ai appuyé sur le bouton de retour, et j'essaie d'ajouter une nouvelle donnée, quand ma deuxième vue apparaît, je vois mes données de données de données, et les données effacées ... Je ne comprends pas. De la vue 1 à la vue 2, j'ai la fonction "préparer (pour la section: UIStoryboardSegue, sender: Any?)". Toute aide serait appréciée.Les données effacées réapparaissent lorsque j'ai appuyé sur le bouton Précédent Swift 3

Répondre

1

Ceci est normal. Imaginons que vous ayez un tableau appelé data dans le premier contrôleur de vue, et que vous transmettez ce tableau au second contrôleur de vue lors de la navigation. Lorsque vous passez ce tableau, il est copié. Le tableau data dans le deuxième contrôleur de vue est un tableau différent du tableau data dans le premier contrôleur de vue.

Ainsi, les modifications appliquées au data tableau des contrôleurs de deuxième vue n'affectent pas le tableau data du premier contrôleur de vue. Pour que ces modifications prennent effet sur le premier contrôleur de vue, vous devez modifier le tableau de la première vue data; vous pouvez utiliser des délégués ou des rappels par exemple.

+0

Fisrt, merci Moe pour votre réponse. Donc, mon problème n'était pas le bouton de retour, et mes données enregistrées. Le problème était, que j'ai fatigué d'utiliser "calss gestionnaire" pour mon objet, et j'ai utilisé ce faux. Dans ma première vue, j'ai instancié ce gestionnaire (dans celui-ci, j'ai toutes mes fonctions à effacer, et ajouter un élément). Pour passer de la vue 1 à ma vue 2 (uiTableViewController) j'ai utilisé la fonction de préparation à la segue. Dans cette fonction, j'ai passé mon tableau, mais je n'ai pas su que j'ai passé mon exemple de mon "manager". Dans la vue 2, j'ai instancié mon "manager". Donc, j'ai eu 2 instance du même "manager". C'était le problème – Wills

+0

Oh je vois, génial tu as trouvé la solution. –