Sobes.tech
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("პარამეტრების ეკრანი")
                }
            }
        }
    }
}