Junior — Middle
Kan één NavigationLink-component worden gebruikt om meerdere overgangen te beheren in een applicatie met veel navigaties?
sobes.tech AI
Antwoord van AI
In SwiftUI is de component NavigationLink bedoeld om een overgang naar een specifieke view te maken. Het wordt niet aanbevolen om één NavigationLink te gebruiken om meerdere overgangen te beheren, omdat elke NavigationLink verbonden is met een specifiek doel (bestemming). Voor applicaties met veel navigaties is het beter om voor elke overgang een aparte NavigationLink te maken of gebruik te maken van programmeerbare navigatie met NavigationDestination en NavigationStack, waarbij navigatie wordt beheerd via de toestand (bijvoorbeeld een enum met verschillende schermen). Dit zorgt voor een schonere en beter beheersbare navigatie.
Voorbeeld van gebruik van NavigationStack met programmeerbare navigatie:
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("Ga naar details") {
path.append(Screen.details)
}
Button("Ga naar instellingen") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Hoofdscherm")
case .details:
Text("Detailscherm")
case .settings:
Text("Instellingen")
}
}
}
}
}