Sobes.tech
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")
                }
            }
        }
    }
}