Sobes.tech
Junior — Middle

Kann man ein einzelnes NavigationLink-Komponente verwenden, um mehrere Übergänge in einer Anwendung mit vielen Navigationspfaden zu steuern?

sobes.tech KI

Antwort von AI

In SwiftUI ist die Komponente NavigationLink dazu gedacht, eine Navigation zu einer bestimmten Ansicht zu erstellen. Es wird nicht empfohlen, einen einzelnen NavigationLink zu verwenden, um mehrere Übergänge zu steuern, da jeder NavigationLink mit einem bestimmten Ziel (Destination) verbunden ist. Für Anwendungen mit vielen Navigationspfaden ist es besser, für jeden Übergang einen eigenen NavigationLink zu erstellen oder eine programmatische Navigation mit NavigationDestination und NavigationStack zu verwenden, bei der die Navigation über den Zustand (z.B. ein Enum mit verschiedenen Bildschirmen) gesteuert werden kann. Dies sorgt für eine sauberere und besser verwaltbare Navigation.

Beispiel für die Verwendung von NavigationStack mit programmatischer Navigation:

enum Screen {
    case home
    case details
    case settings
}

struct ContentView: View {
    @State private var path = NavigationPath()

    var body: some View {
        NavigationStack(path: $path) {
            VStack {
                Button("Zu Details") {
                    path.append(Screen.details)
                }
                Button("Zu Einstellungen") {
                    path.append(Screen.settings)
                }
            }
            .navigationDestination(for: Screen.self) { screen in
                switch screen {
                case .home:
                    Text("Hauptbildschirm")
                case .details:
                    Text("Detailbildschirm")
                case .settings:
                    Text("Einstellungen")
                }
            }
        }
    }
}