È necessario un oggetto modello dati che memorizzi i dati per l'applicazione.
Un modello dati è un oggetto standalone personalizzato accessibile da qualsiasi punto dell'applicazione. L'oggetto del modello di dati non conosce nulla sulle viste o sui controller di vista. Memorizza solo i dati e le relazioni logiche tra i dati.
Quando diverse parti dell'app devono scrivere o leggere dati, scrivono e leggono sul modello dati. Nel tuo caso, view1 salverà i suoi dati nel modello dati quando scaricherà e quindi view2 leggerà i dati dal modello dati quando carica (o viceversa.)
In un'app progettata correttamente, non ci sono due controller di vista dovrebbe avere accesso ai dati interni di un altro controllore. (L'unica ragione per cui i controller di vista devono sapere dell'esistenza di un altro controller è se deve attivare il caricamento di quell'altro controller.)
Il modo più rapido e sporco per creare un modello di dati è quello di aggiungere attributi al delegato app e quindi chiamare il delegato app dal controller di vista utilizzando:
YourAppDelegateClass *appDelegate = [[UIApplication sharedApplication] delegate];
myLocalProperty = appDelegate.someDataModelProperty;
Questo lavoro per progetto di piccole dimensioni, ma come i tuoi dati diventano complessi, dovresti creare una classe dedicata per il tuo modello di dati.
Edit:
Per chiarire per il vostro caso specifico, si dovrebbe aggiungere la chiamata al modello di dati quando il ricevitore viewController diventa attivo.
L'inserimento dei dati in un metodo init o viewDidLoad
non funziona perché in un UITabBar
gli utenti possono passare avanti e indietro senza scaricare la vista o reinizializzare il controller di visualizzazione.
Il luogo migliore per recuperare i dati modificati è nel metodo del controller viewWillAppear
. In questo modo i dati verranno aggiornati ogni volta che l'utente passa a quella scheda.
Grazie mille. Io uso ora l'approccio singleton. Ho anche pubblicato alcuni link a un buon tutorial che descrive, quali passaggi devono essere fatti per creare un modello di dati singleton. –