NavigationController verfügen über zu verwaltende ViewController-Stapel und begrenzte Animationsübergänge.
Das Hinzufügen eines View-Controllers als Unteransicht zu einem vorhandenen View-Controller erfordert das Übergeben von Ereignissen an den Sub-View-Controller. Dies ist mühsam zu verwalten, mit wenig Ärger verbunden und fühlt sich bei der Implementierung im Allgemeinen wie ein schlechter Hack an (Apple rät ebenfalls davon ab Dies tun).
Durch erneutes Präsentieren eines modalen Ansichts-Controllers wird ein Ansichts-Controller über einen anderen gelegt, und obwohl die oben beschriebenen Probleme beim Übergeben von Ereignissen nicht auftreten, wird der Ansichts-Controller nicht wirklich "ausgetauscht", sondern gestapelt.
Storyboards sind auf iOS 5 beschränkt und nahezu ideal, können jedoch nicht in allen Projekten verwendet werden.
Kann jemand ein SOLID CODE-BEISPIEL für eine Möglichkeit zum Ändern von Ansichts-Controllern ohne die oben genannten Einschränkungen vorlegen und animierte Übergänge zwischen ihnen zulassen?
Ein genaues Beispiel, aber keine Animation: So verwenden Sie mehrere benutzerdefinierte iOS-Ansichtscontroller ohne Navigationscontroller
Bearbeiten: Die Verwendung des Nav-Controllers ist in Ordnung, es müssen jedoch animierte Übergangsstile vorhanden sein (nicht nur die Folieneffekte). Der angezeigte View-Controller muss vollständig ausgetauscht (nicht gestapelt) werden. Wenn der zweite Ansichtscontroller einen anderen Ansichtscontroller vom Stapel entfernen muss, ist er nicht ausreichend gekapselt.
Edit 2: iOS 4 sollte das Basisbetriebssystem für diese Frage sein, das hätte ich bei der Erwähnung von Storyboards (oben) klarstellen müssen.