Junior — Middle
Je možné použiť jeden komponent NavigationLink na riadenie viacerých prechodov v aplikácii s veľkým počtom navigácií?
sobes.tech AI
Odpoveď od AI
V SwiftUI je komponent NavigationLink namenjena za ustvarjanje prehoda do določene predstavitve. Ni priporočljivo uporabljati enega NavigationLink za upravljanje več prehodov, saj je vsak NavigationLink povezan z določenim ciljem (destination). Za aplikacije z veliko število navigacij je bolje ustvariti ločen NavigationLink za vsak prehod ali uporabiti programsko navigacijo z NavigationDestination in NavigationStack, kjer lahko upravljate navigacijo preko stanja (npr. enum z različnimi zasloni). To zagotavlja bolj čisto in upravljivo navigacijo.
Primer uporabe NavigationStack z programskim prehodom:
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("Pojdi na podrobnosti") {
path.append(Screen.details)
}
Button("Pojdi na nastavitve") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Glavni zaslon")
case .details:
Text("Zaslon podrobnosti")
case .settings:
Text("Zaslon nastavitev")
}
}
}
}
}