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