Come passare i dati da un controller di visualizzazione a un altro in uno storyboard quando torni indietro?

StackOverflow https://stackoverflow.com/questions/9358381

Domanda

Scenario:

  • Storyboard con UinavidigationController come controller iniziale.
  • MainVC (Root VC del controller di navigazione) richiede all'utente di scegliere una posizione su una mappa.
  • MainVC spinge un VC contenente una mappa MAPKIT e si aggiunge come ascoltatore per una notifica che MAPVC invia quando l'utente sceglie una posizione.
  • Mapkit è un maiale di memoria, lo sappiamo tutti. IOS mi dà un avvertimento di memoria, faccio tutte le cose che devono essere fatte, quindi iOS si occupa di tutto ciò che può trattare, incluso il MainVC.
  • MAPVC invia la notifica ma non c'è nessuno che la ascoltasse. La posizione che l'utente ha scelto è persa, come lacrime sotto la pioggia.

Detto questo, qual è un modo affidabile per passare quei dati sulla posizione quando torna a MainVC? Ho anche pensato di scriverlo a ~/TMP (che è qualcosa che uso per fare quando ho a che fare con una grande quantità di dati come immagini) ma sembra uno spreco di macchinari. Non esiste un meccanismo a cui posso agganciare, come un evento licenziato quando il controller di navigazione torna al VC precedente? Ad esempio, avere accesso a qualcosa come PrepareForSegue: ma nella direzione opposta sarebbe bello.

MODIFICARE Ho provato ad andare per la delega, ma sembra che il mio delegato venga comunque rilasciato. Sono bloccato nel dover scrivere a ~/tmp?

È stato utile?

Soluzione

Vedi la mia risposta qui per una spiegazione dettagliata della creazione di un protocollo delegato e delegato - qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top