I NavigationController hanno stack ViewController da gestire e transizioni di animazione limitate.
L'aggiunta di un controller di visualizzazione come visualizzazione secondaria a un controller di visualizzazione esistente richiede il passaggio di eventi al controller di visualizzazione secondaria, il che è un problema da gestire, carico di piccoli fastidi e in generale sembra un brutto hack durante l'implementazione (Apple consiglia anche di non facendo questo).
Presentare di nuovo un controller di visualizzazione modale posiziona un controller di visualizzazione in cima a un altro e, sebbene non abbia i problemi di passaggio dell'evento sopra descritti, in realtà non "scambia" il controller di visualizzazione, lo impila.
Gli storyboard sono limitati a iOS 5 e sono quasi ideali, ma non possono essere utilizzati in tutti i progetti.
Qualcuno può presentare un ESEMPIO DI CODICE SOLIDO su un modo per cambiare i controller di visualizzazione senza le limitazioni di cui sopra e consentire transizioni animate tra di loro?
Un esempio ravvicinato, ma nessuna animazione: come utilizzare più controller di visualizzazione personalizzati iOS senza un controller di navigazione
Modifica: l'uso del controller di navigazione va bene, ma devono esserci stili di transizione animati (non semplicemente effetti di diapositiva), il controller di visualizzazione mostrato deve essere completamente sostituito (non impilato). Se il controller della seconda vista deve rimuovere un altro controller della vista dallo stack, non è sufficientemente incapsulato.
Modifica 2: iOS 4 dovrebbe essere il sistema operativo di base per questa domanda, avrei dovuto chiarirlo nel menzionare gli storyboard (sopra).