Domanda

Nella mia applicazione iPhone, un utente seleziona un elemento da UITableView per scegliere una risorsa da visualizzare. La sottoclasse UIViewController richiesta per gestire la risorsa non è nota fino a quando la risorsa non viene recuperata, il che potrebbe richiedere alcuni secondi.

In risposta all'azione di selezione, premo un " caricamento " visualizza controller sullo stack di navigazione. Quel controller presenta una vista con un UIActivityIndicatorView insieme a (possibilmente) altre informazioni sullo stato e avvia il download della risorsa selezionata. Da questa vista, l'utente potrebbe annullare il download, nel qual caso tornerei all'elenco delle risorse. Se arriva la risorsa, tuttavia, viene creato un nuovo controller di visualizzazione appropriato corrispondente al suo tipo.

Ecco dove diventa appiccicoso. Se invio la nuova vista specifica per tipo sullo stack di navigazione, il "caricamento" la vista è ancora nello stack; ovviamente una volta completato il caricamento, non è necessario " tornare indietro " a quel punto di vista. Ho provato semplicemente ad aggiungere la vista specifica del tipo come sottoview del " caricamento " vista, ma ciò non inserisce il mio controller specifico per tipo nello stack di navigazione, quindi non ha un [self navigationController] per ulteriore navigazione.

Come posso " sostituire " la vista corrente sullo stack di navigazione con una nuova? O, più in generale, come posso mostrare attività / progressi quando non so ancora quale controller verrà utilizzato per visualizzare la risorsa che viene recuperata?

Ho trovato abbastanza interessante " HUD " classi dell'indicatore di avanzamento, ma non desidero che l'indicazione di avanzamento appaia in cima all'elenco degli elementi selezionati. Invece, voglio che l'utente percepisca che sono "andati". in un nuovo spazio in attesa di essere riempito.

Sono abbastanza nuovo in questo campo, quindi spero di aver formulato la domanda in modo coerente. Grazie per l'aiuto che chiunque può fornire.

È stato utile?

Soluzione

Aggiornamento: in realtà, probabilmente sarebbe meglio visualizzare il tuo " caricamento " vista come una vista modale. Dai un'occhiata a questa question per alcuni esempi .

Dovresti pop the " loading " ; visualizza controller e push il " specifico " visualizzare il controller una volta scaricato e assegnato quest'ultimo. Gioca con NON animare una o entrambe queste azioni per vedere cosa offre la migliore esperienza.

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