Junior — Middle
Kas on võimalik kasutada ühte NavigationLink komponenti, et hallata paljusid üleminekuid rakenduses, kus on palju navigeerimisi?
sobes.tech AI
Vastus AI-lt
SwiftUI-s on komponent NavigationLink mõeldud konkreetse vaate loomiseks üleminekuks. Ühe NavigationLinki kasutamine mitme ülemineku haldamiseks ei ole soovitatav, kuna iga NavigationLink on seotud konkreetse sihtkohaga (destination). Suurema navigeerimise arvuga rakenduste jaoks on parem luua iga ülemineku jaoks eraldi NavigationLink või kasutada programmeeritud navigeerimist NavigationDestination ja NavigationStack abil, kus navigeerimist saab hallata olekuga (näiteks enum erinevate ekraanidega). See tagab puhtama ja hallatavama navigeerimise.
Näide NavigationStacki kasutamisest programmeeritud navigeerimisega:
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("Mine detailidele") {
path.append(Screen.details)
}
Button("Mine seadistustesse") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Peamine ekraan")
case .details:
Text("Detailide ekraan")
case .settings:
Text("Seadistuste ekraan")
}
}
}
}
}