NavigationSplitView в SwiftUI 2022

На недавней конференции WWDC 2022 Apple представила новинки фреймворка SwiftUI, уделив значительное внимание навигации.

Код на GitHub

Работа с навигацией действительно стала лучше. Я попробовал новый компонент – NavigationSplitView – и обнаружил, что он достаточно капризен на трехколоночной вёрстке и при адаптации к разной ширине имеет некоторые проблемы.

Официальный пример из сессии с рецептами навигации работает некорректно при сжатии до .compact размера — перестает работать навигация из левой панели (сайдбара).

Я подобрал более-менее нормальный подход к работе с трехколоночным Split View, при котором не требуется добавлять костыли и проверки на ширину.

Работа с навигацией действительно стала лучше. Я попробовал новый компонент – NavigationSplitView – и обнаружил, что он достаточно капризен на трехколоночной вёрстке и при адаптации к разной ширине имеет некоторые проблемы. Минимальный рабочий прототип:
https://gist.github.com/SoundBlaster/a8190c0a86533da9d8f9d1b08a9df3e2

Можно слегка улучшить внешний вид экрана, если добавить базовую категорию выбранной по умолчанию:

Но в таком случае без багов не обходится: Split View не всегда корректно понимает, какую часть показывать.

Остаётся пока надеяться, что Apple исправит детские болезни к официальному релизу iOS 16.


Опубликовано

в

от

Метки: