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