Проблема з NavigationSplitView та NavigationStack

Проблема з NavigationSplitView та NavigationStack

5 Березня 2024 в 22:31 26

Проблема з використанням NavigationSplitView та NavigationStack у SwiftUI може стати викликом для розробників. У даній статті ми розглянемо ситуацію, коли вкладені NavigationStack в межах NavigationSplitView поводяться неочікувано. У нашому додатку ми спостерігаємо проблему, коли кожен NavigationStack в межах NavigationSplitView прив’язаний до різних шляхів, але прив’язаний шлях не дотримується так, як ми очікували. У цьому додатку є 4 маршрути: Inbox/Inbox (головний шлях) Inbox/Message Outbox/Outbox (головний шлях) Outbox/Message Навігаційний маршрутизатор відповідає за оновлення стану таким чином: бічна панель NavigationSplitView прив’язана до категорії, шлях NavigationStack прив’язаний до 2 різних шляхів, в залежності від того, яка категорія обрана в бічній панелі. Ми зіткнулися з проблемою, коли ми хочемо змінити маршрути: [Inbox/Message] -> [Outbox/Message] (зверніть увагу на зміну шляху, де глибина більше, ніж корінь) Це призводить нас до пункту призначення в UI: [Outbox/Outbox] (зверніть увагу на те, що зміна здійснюється, але інтерфейс користувача перебуває в кореневому режимі) Здається, що NavigationSplitView: враховує зміну категорії в бічній панелі активно встановлює поточний прив’язаний шлях навігації на порожній шлях: [] не дотримується нового прив’язаного шляху при глибині Не знаєте, як можна було б досягти описаного вище? Я боюся, що мені доведеться написати обгортку UIKit для того, що, здається, повинно бути можливим за кодом, наданим тут.