Junior — Middle
Lze použít jeden komponent NavigationLink k řízení mnoha přechodů v aplikaci s velkým počtem navigací?
sobes.tech AI
Odpověď od AI
V SwiftUI je komponent NavigationLink určen k vytvoření přechodu na konkrétní zobrazení. Nedoporučuje se používat jeden NavigationLink pro správu více přechodů, protože každý NavigationLink je spojen s konkrétním cílem (destinací). Pro aplikace s velkým počtem navigací je lepší vytvořit samostatný NavigationLink pro každý přechod nebo použít programovou navigaci pomocí NavigationDestination a NavigationStack, kde lze navigaci řídit přes stav (například enum s různými obrazovkami). To zajišťuje čistší a lépe spravovatelnou navigaci.
Příklad použití NavigationStack s programovou navigací:
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("Přejít na detaily") {
path.append(Screen.details)
}
Button("Přejít na nastavení") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Hlavní obrazovka")
case .details:
Text("Detaily")
case .settings:
Text("Nastavení")
}
}
}
}
}