Sobes.tech
Junior — Middle

Se poate folosi un singur component NavigationLink pentru a gestiona multiple tranziții într-o aplicație cu numeroase navigații?

sobes.tech AI

Răspuns de la AI

În SwiftUI, componenta NavigationLink este destinată creării unei tranziții către o vizualizare specifică. Nu se recomandă utilizarea unui singur NavigationLink pentru gestionarea mai multor tranziții, deoarece fiecare NavigationLink este asociat cu o destinație specifică. Pentru aplicații cu un număr mare de navigații, este mai bine să creați un NavigationLink separat pentru fiecare tranziție sau să utilizați navigarea programatică cu NavigationDestination și NavigationStack, unde puteți gestiona navigarea prin stare (de exemplu, un enum cu diferite ecrane). Acest lucru asigură o navigare mai curată și mai ușor de gestionat.

Exemplu de utilizare a NavigationStack cu navigare programatică:

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("Mergi la detalii") {
                    path.append(Screen.details)
                }
                Button("Mergi la setări") {
                    path.append(Screen.settings)
                }
            }
            .navigationDestination(for: Screen.self) { screen in
                switch screen {
                case .home:
                    Text("Ecran principal")
                case .details:
                    Text("Ecran detalii")
                case .settings:
                    Text("Ecran setări")
                }
            }
        }
    }
}