Scénario:Comment transmettre des données d'un View Controller à un autre dans un Storyboard lors d'un retour?
- scénarimage avec UINavigationController en tant que contrôleur initial.
- MainVC (racine du contrôleur de navigation vc) a besoin de l'utilisateur pour choisir un emplacement sur une carte.
- MainVC pousse un VC contenant une carte MapKit et ajoute lui-même en tant qu'auditeur pour une notification que le MapVC envoie lorsque l'utilisateur choisit un emplacement.
- MapKit est un cochon de mémoire, nous le savons tous. iOS me donne un avertissement de mémoire, je fais tout ce qui doit être fait, puis iOS libère tout ce qu'il peut désallouer, y compris le MainVC.
- MapVC envoie la notification mais personne ne l'écoute. L'emplacement choisi par l'utilisateur est perdu, comme les larmes sous la pluie.
Étant donné cela, quel est un moyen fiable de transmettre ces données de localisation lorsque vous revenez à MainVC? J'ai même pensé à l'écrire à ~/tmp (ce que j'ai l'habitude de faire pour traiter une grande quantité de données comme des images) mais cela semble être un gaspillage de machines. N'y a-t-il pas un mécanisme auquel je peux m'accrocher, comme un événement déclenché quand le contrôleur de navigation retourne à la VC précédente? Comme, avoir accès à quelque chose comme le prepareForSegue: mais dans la direction opposée serait bien.
EDIT J'ai essayé d'aller en délégation mais il semble que mon délégué soit quand même sorti. Suis-je obligé d'écrire à ~/tmp?
est le chemin à parcourir - il semble que vous avez un problème avec votre objet délégué étant désalloué? – petert
Je peux seulement ajouter que si je commente le [super didReceiveMemoryWarning] dans le MainVC (qui est maintenant le MapVC.delegate) il ne se libère pas. Je pense que cela est considéré comme un mauvais comportement. – Morpheu5