Обновить

Удобная навигация в SwiftUI для iOS 16 и выше

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.1K
Всего голосов 4: ↑4 и ↓0+8
Комментарии5

Комментарии 5

А если хочется, чтобы за навигацию отвечала viewModel, а не View?

RouterView - контейнер для вьюх, он нужен для того, чтобы один раз написать логику с прикидкой дестинейшенов и забыть, ну и Environment прокинуть, чтобы на каждую вручную не пихать самостоятельно

... то надо хорошо подумать. Вьюмодель не должна ничего знать о вьюшках, в том числе и о том, как, какие и в каком порядке менять. Иначе получаете обратную зависимость и невозможность переносить вашу логику, например, на часы или телевизор. Или даже на макбук, Windows-компьютер или Android. Роутинг зависит от вьюшек, поэтому он платформенно зависим и должен быть инкапсулирован на уровне представления, а не опущен ниже.

Отличный пример. На самом деле: ему можно сделать даунгрейд до iOS 14, если использовать пример расширения как в статье: https://www.avanderlee.com/swiftui/navigationlink-programmatically-binding/

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации