Sobes.tech
Junior — Middle

Çok sayıda gezinmeye sahip bir uygulamada birden fazla geçişi yönetmek için tek bir NavigationLink bileşeni kullanılabilir mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

SwiftUI'de NavigationLink bileşeni, belirli bir görünüme geçiş yapmak için tasarlanmıştır. Birden fazla geçişi yönetmek için tek bir NavigationLink kullanmak önerilmez, çünkü her NavigationLink belirli bir hedefle (varış noktası) ilişkilidir. Çok sayıda navigasyon içeren uygulamalar için, her geçiş için ayrı bir NavigationLink oluşturmak veya NavigationDestination ve NavigationStack kullanarak programatik navigasyonu tercih etmek daha iyidir; burada navigasyonu duruma (örneğin, farklı ekranlar içeren enum) göre yönetebilirsiniz. Bu, daha temiz ve yönetimi kolay bir navigasyon sağlar.

Programatik navigasyon ile NavigationStack kullanımına örnek:

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("Detaylara git") {
                    path.append(Screen.details)
                }
                Button("Ayarlar") {
                    path.append(Screen.settings)
                }
            }
            .navigationDestination(for: Screen.self) { screen in
                switch screen {
                case .home:
                    Text("Ana ekran")
                case .details:
                    Text("Detay ekranı")
                case .settings:
                    Text("Ayar ekranı")
                }
            }
        }
    }
}