Domanda

Sto creando un'app che inizia caricando un controller di visualizzazione "download" che recupera una matrice di dati tramite una chiamata API. Una volta restituiti i dati, l'app nasconde quindi la vista di questo controller di visualizzazione e carica un controller di barra delle schede, che ospita due controller di navigazione.

La prima vista inserita nel primo controller di navigazione è una vista tabella. È in questa vista tabella che devo visualizzare i dati recuperati dalla chiamata API nel controller di visualizzazione iniziale "download".

Qualcuno può spiegarmi come passare questi dati tra i controller di "download" e di visualizzazione tabella? Considerando che non si conoscono.

Una nota importante è che i dati devono essere recuperati prima di caricare il controller della barra delle schede, quindi non è possibile semplicemente recuperare i dati dall'interno del controller della vista tabella che li utilizzerà.

È stato utile?

Soluzione

I tuoi dati sono subordinati all'applicazione, quindi il delegato dell'applicazione potrebbe mantenere il puntatore ai dati, quindi le due viste potrebbero accedervi usando [[UIApplication sharedApplication] delegate] .

Un'altra opzione sarebbe quella di inviare un messaggio con i dati al delegato dell'applicazione al termine del download. Presumo che tu stia già facendo qualcosa del genere poiché dici che l'app nasconde la vista del controller di visualizzazione, piuttosto che il controller di visualizzazione che si nasconde. In qualche modo deve sapere che il download è completo. Quindi, nel controller di download:

- (void) downloadFinished {
    [listener downloadFinished:data];
}

E nel delegato dell'applicazione (il listener dallo snippet precedente):

- (void) downloadFinished:(NSData *)data {
    CustomViewController *c = [[[CustomViewController alloc] initWithData:data] autorelease];
    [downloadView removeFromSuperview];
    [window addSubview:c.view];
}

Dove il controller di visualizzazione personalizzato si occupa del caricamento del NIB e della conservazione dei dati per l'accesso da parte della tabella.

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