Junior — Middle
Peut-on utiliser un seul composant NavigationLink pour gérer plusieurs transitions dans une application avec de nombreuses navigations?
sobes.tech IA
Réponse de l'IA
Dans SwiftUI, le composant NavigationLink est destiné à créer une transition vers une vue spécifique. Il n'est pas recommandé d'utiliser un seul NavigationLink pour gérer plusieurs transitions, car chaque NavigationLink est associé à une destination spécifique. Pour une application avec de nombreuses navigations, il est préférable de créer un NavigationLink séparé pour chaque transition ou d'utiliser une navigation programmée avec NavigationDestination et NavigationStack, où la navigation peut être gérée via l'état (par exemple, un enum avec différents écrans). Cela permet une navigation plus propre et plus facile à gérer.
Exemple d'utilisation de NavigationStack avec navigation programmée :
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("Aller aux détails") {
path.append(Screen.details)
}
Button("Aller aux paramètres") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Écran principal")
case .details:
Text("Écran de détails")
case .settings:
Text("Écran des paramètres")
}
}
}
}
}