Назад к вопросам
Junior — Middle
73
Можно ли использовать один компонент NavigationLink для управления множеством переходов в приложении с большим числом навигаций?
Ответ от нейросети
sobes.tech 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("Экран настроек")
}
}
}
}
}