Junior — Middle
Használható-e egyetlen NavigationLink komponens több átmenet kezelésére egy olyan alkalmazásban, ahol sok navigáció van?
sobes.tech MI
Válasz az MI-től
SwiftUI-ban a NavigationLink komponens arra szolgál, hogy egy adott nézetre való átmenetet hozzon létre. Nem ajánlott egyetlen NavigationLink-et használni több átmenet kezelésére, mivel minden NavigationLink egy adott céllal (destination) van összekapcsolva. Nagy számú navigációval rendelkező alkalmazások esetén jobb, ha minden átmenethez külön NavigationLink-et hozunk létre, vagy programozott navigációt alkalmazunk NavigationDestination és NavigationStack segítségével, ahol az állapot (például egy enum különböző képernyőkkel) szerint kezelhetjük a navigációt. Ez tisztább és kezelhetőbb navigációt biztosít.
Példa a NavigationStack programozott navigációval való használatára:
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("Ugrás a részletekre") {
path.append(Screen.details)
}
Button("Ugrás a beállításokra") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Főképernyő")
case .details:
Text("Részletek képernyő")
case .settings:
Text("Beállítások képernyő")
}
}
}
}
}