Sobes.tech
Junior — Middle

Çox sayda naviqasiya olan tətbiqdə çox keçidləri idarə etmək üçün tək bir NavigationLink komponentindən istifadə etmək mümkündürmü?

sobes.tech Süni İntellekt

AI-dan cavab

SwiftUI-də NavigationLink komponenti müəyyən bir görünüşə keçid yaratmaq üçün nəzərdə tutulmuşdur. Bir çox keçidi idarə etmək üçün tək NavigationLink istifadə etmək tövsiyə edilmir, çünki hər NavigationLink müəyyən bir məqsədlə (destination) əlaqələndirilmişdir. Çox sayda naviqasiya olan tətbiqlər üçün hər keçid üçün ayrıca NavigationLink yaratmaq və ya NavigationDestination və NavigationStack istifadə edərək proqramlı naviqasiyadan istifadə etmək daha yaxşıdır; burada naviqasiya vəziyyət (məsələn, müxtəlif ekranlar ilə enum) vasitəsilə idarə oluna bilər. Bu, daha təmiz və idarə olunan naviqasiyanı təmin edir.

Proqramlı naviqasiya ilə NavigationStack istifadəsinə nümunə:

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("Ətraflı keç") {
                    path.append(Screen.details)
                }
                Button("Ayarlar") {
                    path.append(Screen.settings)
                }
            }
            .navigationDestination(for: Screen.self) { screen in
                switch screen {
                case .home:
                    Text("Əsas ekran")
                case .details:
                    Text("Ətraflı ekran")
                case .settings:
                    Text("Ayarlar ekran")
                }
            }
        }
    }
}