Junior — Middle
შესაძლებელია ერთეული NavigationLink კომპონენტის გამოყენება მრავალ გადასვლას მართვისთვის მრავალ ნავიგაციით სავსე აპლიკაციაში?
sobes.tech AI
პასუხი AI-სგან
SwiftUI-ში, NavigationLink კომპონენტი განკუთვნილია კონკრეტული წარმოდგენისკენ გადასვლის შესაქმნელად. ერთიანი NavigationLink-ის გამოყენება მრავალი გადასვლის მართვისთვის არ არის რეკომენდებული, რადგან თითოეული NavigationLink დაკავშირებულია კონკრეტულ დანიშნულებასთან (destination). მრავალგვარი ნავიგაციის მქონე აპლიკაციებისათვის უკეთესია თითოეული გადასვლისთვის ცალკე NavigationLink-ის შექმნა ან პროგრამული ნავიგაციის გამოყენება NavigationDestination და NavigationStack-ის საშუალებით, სადაც ნავიგაციას მართავთ მდგომარეობის (მაგ., enum სხვადასხვა ეკრანებით) მეშვეობით. ეს უზრუნველყოფს უფრო სუფთა და მართვად ნავიგაციას.
პროგრამული ნავიგაციის გამოყენების მაგალითი:
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("გადადი დეტალებზე") {
path.append(Screen.details)
}
Button("გადადი პარამეტრებზე") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("მთავარი ეკრანი")
case .details:
Text("დეტალების ეკრანი")
case .settings:
Text("პარამეტრების ეკრანი")
}
}
}
}
}