Junior — Middle
Може ли се користити један компонент NavigationLink за управљање многим прелазима у апликацији са великим бројем навигација?
sobes.tech АИ
Одговор од АИ
U SwiftUI, komponenta NavigationLink namenjena je za kreiranje prelaza ka određenom prikazu. Nije preporučljivo koristiti jedan NavigationLink za upravljanje više prelaza, jer je svaki NavigationLink povezan sa specifičnim odredištem (ciljem prelaza). Za aplikacije sa velikim brojem navigacija, bolje je napraviti poseban NavigationLink za svaki prelaz ili koristiti programsku navigaciju pomoću NavigationDestination i NavigationStack, gde možete upravljati navigacijom putem stanja (npr. enum sa različitim ekranima). Ovo obezbeđuje čistiju i lakše upravljivu navigaciju.
Primer korišćenja NavigationStack sa programskom navigacijom:
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("Idi na detalje") {
path.append(Screen.details)
}
Button("Idi na podešavanja") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Glavni ekran")
case .details:
Text("Ekran detalja")
case .settings:
Text("Ekran podešavanja")
}
}
}
}
}