2017-06-28 1 views
0

J'ai deux contrôleurs de vue A et B et une séquence de A à B (type: show) via un bouton suivant et une section de B à A (type: show) à travers bouton. Je passe certaines données via la séquence A à B. Les données s'affichent correctement si je tape juste à côté du contrôleur A et passons au contrôleur B.Données perdues après avoir appuyé sur le bouton

Cependant, si je tape suivant et que je vais dans le contrôleur B à A et ensuite frapper à nouveau, cela ne fonctionne pas. Des idées ce qui se passe ici? Désolé pour la langue confuse.

+0

Vos données sont-elles stockées dans une propriété du contrôleur A et transmises à B via 'prepareForSegue'? –

Répondre

0

Il semble que votre "B to A" soit erroné, vous utilisez une pile de navigation, vous ne devriez donc appuyer que sur (show) lorsque vous avancez. Si vous continuez à pousser, l'application continuera à mettre de plus en plus de ViewControllers en mémoire, ce qui est mauvais.

Je suspecte que ce qui se passe ici est View A initialement les données et le passe à View B. Ensuite, lorsque vous appuyez sur votre bouton de retour, il crée une nouvelle copie de View A qui n'a pas les données et montre qu'au lieu de la vue originale A.

en bref: (a à B: Type - spectacle) (B à a: rejeter le ViewController actuel)

0

Je suis d'accord avec user2877496 dans ce que vous ne devriez pas utiliser un Segue régulier pour aller retour de B à A car vous ajouterez "A" à la pile chaque fois. Je voulais juste ajouter qu'une méthode pour rejeter B et revenir à A est d'utiliser un Segue Unwind. La documentation d'Apple couvre assez bien ceci https://developer.apple.com/library/content/technotes/tn2298/_index.html

0

Avez-vous résolu ceci? Je suppose que vous mettez des choses à exécuter dans viewDidLoad (qui ne s'exécute qu'une fois au début de votre application) et il doit être dans viewWillAppear donc il est appelé chaque fois que vous revenez à votre contrôleur de vue principale. Veuillez fournir votre code pour ces méthodes si vous avez besoin d'aide supplémentaire.

+0

J'ai travaillé autour de segues et j'ai simplement utilisé les paramètres utilisateur par défaut pour sauvegarder les données. –

+0

Excellent! Félicitations pour avoir résolu votre propre problème. Vous devriez écrire cela comme une réponse et l'accepter. – Mozahler