Hierarchische Navigation mit UINavigationController
Ein UINavigationController ist ein UIViewController, der einen Stapel von UIViewControllern verwaltet. Die Navigations-Bar mit Zurück-Button und Titel wird dabei automatisch angezeigt und aktualisiert:
Initial zeigt ein Navigation Controller seinen Root View Controller an, der im Storyboard über ein Relationship-Segue-Übergang festgelegt wird:
Innerhalb eines UINavigationControllers bekommen UIViewController ein navigationItem zur Konfiguration der Navigation-Bar gesetzt:
Programmatische Navigation
Alternativ zu Storyboard-Segues kann die Navigation über Controller-Methoden erfolgen. Dazu kennen UIViewController den Navigations-Controller in dem sie enthalten sind. Mit pushViewController wird ein View-Controller auf den Stapel gelegt und angezeigt:
let viewController = self.storyboard!.instantiateViewController(withIdentifier:"Example")
self.navigationController?.pushViewController(viewController, animated: true)
popViewController entfernt den aktuellen View-Controller vom Stapel und zeigt den darunterliegenden an:
self.navigationController?.popViewController(animated:true)
Weitere View-Controller
-
UITabBarController zeigt mehrere UIViewController nebeneinander in Tabs an. Typischerweise enthält jeder UITabBarController-Tab eine eigene UINavigationController-Hierarchie:
-
UISplitViewController ordnet zwei UIViewController in einer Master/Detail-Beziehung nebeneinander an: Im linken Master-View, typischerweise eine Navigation über alle Inhalte, werden die Inhalte für das Detail-View auf der rechten Seite ausgewählt. Meist wird dabei die Navigation im Hochformat immer angezeigt und im Querformat per Button-Tap eingeblendet.
-
UIPageViewController verwaltet mehrere UIViewController, zwischen denen hin- und hergeblättert werden kann (die Seiten müssen im Code konfiguriert werden, Storyboard-Segues können hier nicht verwendet werden):