Junior — Middle
Czy można użyć jednego komponentu NavigationLink do obsługi wielu przejść w aplikacji z dużą liczbą nawigacji?
sobes.tech AI
Odpowiedź od AI
W SwiftUI komponent NavigationLink służy do tworzenia przejścia do konkretnego widoku. Nie zaleca się używania jednego NavigationLink do obsługi wielu przejść, ponieważ każdy NavigationLink jest powiązany z określonym celem (destination). Dla aplikacji z dużą liczbą nawigacji lepiej jest tworzyć osobny NavigationLink dla każdego przejścia lub korzystać z programowej nawigacji za pomocą NavigationDestination i NavigationStack, gdzie można zarządzać nawigacją przez stan (np. enum z różnymi ekranami). Zapewnia to bardziej czystą i zarządzalną nawigację.
Przykład użycia NavigationStack z nawigacją programową:
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("Przejdź do szczegółów") {
path.append(Screen.details)
}
Button("Przejdź do ustawień") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Ekran główny")
case .details:
Text("Ekran szczegółów")
case .settings:
Text("Ekran ustawień")
}
}
}
}
}