Push Presentation in der mobilen Entwicklung: Was es ist, Bildschirm-Stack

Autor: IT Sectr Veröffentlicht: 2026-06-09 Lesezeit: 5 Min.

Push Presentation ist ein Navigationsmuster in mobilen Anwendungen, bei dem jeder neue Bildschirm zum Navigationsstapel über dem vorherigen hinzugefügt wird. Der Benutzer kann sequenziell durch den Inhalt vorwärts navigieren und über die Systemtaste oder Wischgeste zurückkehren. Laut Apple Developer, 2025 wird UINavigationController in 85% der iOS-Apps als primäres Navigationsmuster verwendet. In Android wird ähnliche Funktionalität über FragmentManager und NavController aus dem Navigation Component implementiert.

Wichtige Punkte

  • Push Presentation — Hinzufügen eines Bildschirms zum Navigationsstapel mit automatischer Zurück-Taste zum vorherigen Bildschirm.
  • UINavigationController in iOS verwaltet den UIViewController-Stapel über die Methoden pushViewController und popViewController.
  • Android Navigation Component verwendet NavController mit NavHost und Navigationsgraphen im XML- oder Compose-Format.
  • Stapelnavigation bewahrt den Navigationsverlauf und ermöglicht dem Benutzer die Rückkehr zu jedem vorherigen Bildschirm.
  • Deep Linking in der Push-Navigation wird durch Intent- und NavDeepLink-Verarbeitung in Android und URL-Schemata in iOS unterstützt.

Was ist Push Presentation?

Push Presentation ist ein Navigationsmechanismus, bei dem jeder neue Bildschirm oben auf den Stapel gelegt wird, während der vorherige Bildschirm darunter im Speicher bleibt. Der Benutzer taucht tiefer in den Inhalt ein, indem er nacheinander Detailbildschirme öffnet, und die Zurück-Taste bringt ihn zum vorherigen Schritt zurück.

Die Architektur der Push-Navigation basiert auf der LIFO-Datenstruktur (Last In, First Out). Ein neuer Bildschirm wird immer am Ende des Stapels hinzugefügt, und das Entfernen erfolgt nur von der Spitze. Dies garantiert ein vorhersagbares Verhalten: Der Benutzer weiß immer, dass die Zurück-Taste ihn genau einen Schritt zurückbringt. Der Navigationsstapel kann je nach Komplexität der Anwendung 2 bis 10+ Bildschirme enthalten.

Push Presentation ist das primäre Muster in Anwendungen mit hierarchischem Inhalt: Nachrichtenfeeds, Produktkataloge, mehrstufige Menüs und Dokumentation. Laut Material Design eignet sich die Stapelnavigation für Szenarien, in denen der Benutzer Inhalte vom Allgemeinen zum Spezifischen erkundet und jeder nachfolgende Bildschirm das Verständnis des Themas vertieft.

Der Navigationsstapel ist eine geordnete Menge von Bildschirmen, wobei jedes Element den Zustand seines ViewControllers oder Fragments speichert. Während einer Push-Operation wird ein neuer Bildschirm zum Stapel hinzugefügt, sein Erscheinen wird animiert (Schieben von rechts in iOS, Schieben von unten oder Fade in Android), und er wird aktiv.

Während einer Pop-Operation (Zurück-Taste drücken) wird der oberste Bildschirm vom Stapel entfernt, zerstört oder in den Speicher verschoben, und der vorherige Bildschirm wird aktiv. iOS zerstört standardmäßig den entfernten ViewController und gibt Speicher frei. Android kann das Fragment im Rückwärtsstapel mit der Möglichkeit der Wiederherstellung ohne Neuerstellung speichern.

Die Stapeltiefe beeinflusst die Leistung: Jeder Bildschirm im Stapel verbraucht Speicher. Es wird empfohlen, nicht mehr als 10 Bildschirme im Stapel zu halten. Verwenden Sie für tiefe Navigation PopToRoot oder starten Sie den Stapel mit einem neuen Root-Bildschirm neu. Das Navigation Component in Android verwaltet den Stapelzustand automatisch über SavedStateHandle.

Push-Navigation in iOS: UINavigationController

UINavigationController ist ein iOS-Container-Controller, der einen Stapel von UIViewControllern verwaltet. Er zeigt automatisch eine Navigationsleiste mit dem Titel des aktuellen Bildschirms und einer Zurück-Taste an. Die Standard-Push-Animation ist ein Schieben von rechts nach links, das beim Benutzer ein Gefühl des Eintauchens in den Inhalt erzeugt.

Stapelverwaltung

Das Hinzufügen eines Bildschirms erfolgt über pushViewController(_:animated:). Das Entfernen erfolgt über popViewController(animated:). Um zum Root-Bildschirm zurückzukehren, verwenden Sie popToRootViewController(animated:). UINavigationController unterstützt auch die programmatische Stapelverwaltung über die Eigenschaft viewControllers — ein Array aller Controller im Stapel.

Navigationsleiste und Large Titles

Die Navigationsleiste enthält den Bildschirmtitel, eine Zurück-Taste und optionale Aktionsschaltflächen. Ab iOS 11 ermöglichen Large Titles (prefersLargeTitles) die Anzeige des Titels in einer vergrößerten Schriftart, die beim Scrollen animiert schrumpft. Dies verbessert die Navigationshierarchie und informiert den Benutzer über den aktuellen Abschnitt.

swift
let detailVC = DetailViewController()
detailVC.title = "Item Details"
navigationController?.pushViewController(detailVC, animated: true)

// Zum vorherigen Bildschirm zurück
navigationController?.popViewController(animated: true)

// Zum Root zurück
navigationController?.popToRootViewController(animated: true)

Push-Navigation in Android: Navigation Component

Navigation Component ist eine Android Jetpack-Bibliothek für deklarative Navigation. Sie bietet NavController, der Fragmente oder Compose-Bildschirme über einen Navigationsgraphen (nav_graph) verwaltet. Push in Android ist ähnlich wie in iOS: Jedes neue Fragment wird zum Rückwärtsstapel hinzugefügt, und die Zurück-Taste kehrt zum vorherigen zurück.

NavHost und NavGraph

NavHost ist ein Container, der das aktuelle Ziel aus dem NavGraph anzeigt. NavGraph ist eine XML-Datei, die alle Anwendungsbildschirme und Verbindungen zwischen ihnen beschreibt. Übergänge werden über actions mit Angabe des Ziels und optionaler Argumente definiert. Navigation Component behandelt automatisch System-Zurück, Animationen und Zustandsspeicherung.

Argumente und Safe Args

Zur Datenübergabe zwischen Bildschirmen unterstützt Navigation Component Safe Args — Codegenerierung typsicherer Argumentklassen. Anstatt Daten manuell in ein Bundle zu legen, deklariert der Entwickler Argumente im NavGraph und erhält sie über generierte Directions- und Args-Klassen. Safe Args beseitigt Typkonflikte und vereinfacht die Refaktorisierung.

kotlin
// NavGraph-Definition in XML
<!-- res/navigation/nav_graph.xml -->
@navigation {
    NavHost(startDestination = "list") {
        composable("list") { ListScreen() }
        composable(
            "detail/{itemId}",
            arguments = listOf(navArgument("itemId") { type = NavType.IntType })
        ) { DetailScreen(it.arguments()?.getInt("itemId") ?: 0) }
    }
}

// Programmatisch navigieren
navController.navigate("detail/42")

BottomNavigation mit Push-Stapel

Die Kombination von Bottom Navigation und Push-Navigation ist ein häufiges Muster in mobilen Anwendungen. Jeder Bottom Navigation-Tab hat seinen eigenen Bildschirmstapel. Navigation Component unterstützt dies über NavHost pro Tab oder einen einzelnen NavHost mit getrennten Graphen für jeden Tab. Das Umschalten von Tabs setzt den Zustand der Push-Stapel nicht zurück.

Push Presentation vs Modal Presentation

Push Presentation und Modal Presentation lösen unterschiedliche Navigationsaufgaben. Push ist für die sequenzielle Inhaltsansicht konzipiert, bei der jeder neue Bildschirm den Kontext vertieft. Modal ist für fokussierte Aufgaben, die abgeschlossen werden müssen. In der Praxis ist es wichtig, das richtige Muster für das jeweilige Szenario zu wählen.

Die Hauptauswahlkriterien: Wenn der Benutzer frei zurückkehren können soll, ohne den Kontext zu verlieren — wählen Sie Push. Wenn die Aufgabe temporär ist und den Hauptinhalt (Formular, Autorisierung) blockiert — verwenden Sie Modal. Das Mischen von Mustern auf einem Bildschirm (Push innerhalb von Modal) ist akzeptabel, erfordert jedoch eine klare visuelle Hierarchie.

Ein häufiger Fehler ist die Verwendung von Modal für Bildschirmsequenzen, die logisch Teil des Hauptflusses sind. Beispielsweise wird ein Bestellerstellungs-Assistent (Schritt 1 → Schritt 2 → Schritt 3) besser über Push innerhalb eines modalen Containers implementiert als über eine Kette von modalen Fenstern. Dies bewahrt die Navigationshierarchie und die Vorhersagbarkeit der Rückkehr.

Implementierungsbeispiele in Swift und Kotlin

Betrachten wir eine vollständige Implementierung der Push-Navigation auf beiden Plattformen. Das Swift-Beispiel demonstriert UINavigationController mit programmatischer Stapelverwaltung und Deep-Link-Verarbeitung. Das Kotlin-Beispiel zeigt Navigation Component mit NavHost, Argumenten und Animationen.

swift
class ListViewController: UIViewController {
    func showDetail(_ itemId: Int) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let detailVC = storyboard.instantiateViewController(
            withIdentifier: "DetailViewController"
        ) as! DetailViewController
        detailVC.itemId = itemId
        navigationController?.pushViewController(detailVC, animated: true)
    }
}

class DetailViewController: UIViewController {
    var itemId: Int = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        title = "Item #\(itemId)"
    }
}
kotlin
@Composable
fun PushNavigationApp() {
    val navController = rememberNavController()

    NavHost(navController = navController, startDestination = "list") {
        composable("list") {
            ListScreen(
                onItemClick = { id -> navController.navigate("detail/$id") }
            )
        }
        composable(
            "detail/{itemId}",
            arguments = listOf(navArgument("itemId") { type = NavType.IntType })
        ) { backStackEntry ->
            val itemId = backStackEntry.arguments()?.getInt("itemId") ?: 0
            DetailScreen(itemId = itemId, onBack = { navController.popBackStack() })
        }
    }
}

Die Beispiele zeigen grundlegende Push-Navigation: Liste → Details. iOS verwendet Storyboards und UINavigationController mit manueller Datenübergabe. Android verwendet NavHost mit typsicheren Argumenten und automatischer Rückwärtsstapelverwaltung. Beide Ansätze unterstützen Deep Links, benutzerdefinierte Animationen und Zustandsspeicherung bei Drehung.

Häufig gestellte Fragen

Wie unterscheidet sich Push Presentation von Present in iOS?

Push fügt einen Bildschirm zum UINavigationController-Stapel mit einer Zurück-Taste hinzu. Present öffnet ein modales Fenster ohne Zurück-Taste — der Benutzer muss es explizit schließen. Push eignet sich für sequenziellen Inhalt, Present für fokussierte Aufgaben. In SwiftUI entspricht Push NavigationLink und Present .sheet.

Wie verwaltet man einen tiefen Navigationsstapel in Android?

Navigation Component bietet Methoden popBackStack zu einem bestimmten Punkt und popUpTo zum Leeren des Stapels. Verwenden Sie popUpTo(startDestination) { inclusive = true } vor navigate, um einen Stapelüberlauf zu verhindern. Dies stellt sicher, dass der Stapel nicht mehr als 5–7 Bildschirme gleichzeitig enthält.

Kann man Push und Modal in einer Navigation kombinieren?

Ja, die Kombination von Push und Modal ist ein Standardmuster. Beispiel: Liste → Push zu Details → Modal für Autorisierung. Es wird empfohlen, Push nicht innerhalb von Modal zu verschachteln: Ein modales Fenster sollte keine Stapelnavigation enthalten. Wenn eine Bildschirmsequenz innerhalb eines modalen Fensters benötigt wird, verwenden Sie Push innerhalb eines modalen Containers.

Wie funktioniert Push Presentation mit Deep Links?

Deep Links in der Push-Navigation öffnen die App auf einem bestimmten Bildschirm. iOS verwendet URL-Schemata und Universal Links mit UINavigationController. Android verwendet Intent Filters mit NavDeepLink. In beiden Fällen analysiert das System den Link und erstellt einen Navigationsstapel zum Zielbildschirm, wobei die Möglichkeit zur Rückkehr erhalten bleibt.

Wie animiert man Push-Übergänge?

iOS verwendet die Standardschiebe-Animation, die über UINavigationControllerDelegate anpassbar ist. Android Navigation Component unterstützt benutzerdefinierte Animationen über XML-Ressourcen (slide_in_right, slide_out_left). Für Compose verwenden Sie AnimatedNavHost mit dem Modifikator animateItemPlacement.

Zusammenfassung

  • Push Presentation ist ein Stapelnavigationsmuster, das jeden neuen Bildschirm mit einer Zurück-Taste über den vorherigen legt.
  • UINavigationController verwaltet den Stapel in iOS über pushViewController und popViewController mit einer Navigationsleiste.
  • Android Navigation Component bietet NavHost, NavGraph und Safe Args für typsichere Navigation.
  • Push unterscheidet sich von Modal dadurch, dass es Inhalte nicht blockiert und die freie Rückkehr über den Stapel ermöglicht.
  • Die Stapeltiefe sollte 10 Bildschirme für optimale Anwendungsleistung nicht überschreiten.
  • Deep Links in der Push-Navigation werden über URL-Schemata und NavDeepLink mit Verlaufspeicherung unterstützt.
  • Es wird empfohlen, Push für hierarchische Inhalte und Modal für fokussierte Aufgaben zu verwenden.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch