Sobes.tech
Junior — Middle

Оё мумкин аст, ки як компонент NavigationLink барои идора кардани бисёр гузаришҳо дар барномаи бо шумораи зиёди навигатсияҳо истифода шавад?

sobes.tech AI

Ҷавоб аз AI

Дар SwiftUI, компонент NavigationLink предназначен за създаване на преход към конкретно представяне. Не се препоръчва използването на един NavigationLink за управление на множество преходи, тъй като всеки NavigationLink е свързан с конкретна цел (destination). За приложения с голям брой навигации е по-добре да създавате отделен NavigationLink за всеки преход или да използвате програмирана навигация с NavigationDestination и NavigationStack, където можете да управлявате навигацията чрез състояние (например, enum с различни екрани). Това осигурява по-чиста и управляеми навигация.

Пример за използване на NavigationStack с програмирана навигация:

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("Екран с настройки")
                }
            }
        }
    }
}