Swift UI с MVVM-архитектурой для навигации по экранам в сложных приложениях - PullRequest
0 голосов
/ 07 ноября 2019

Как я могу перемещаться с одного экрана на другой в приложении Swift UI, я пытаюсь реализовать архитектуру MVVM в своем приложении, и у меня более 20 экранов, поэтому NavigationLink не подходит для моегоcase.

Заранее спасибо.

1 Ответ

1 голос
/ 07 ноября 2019

Я вполне понимаю вашу проблему, раньше у нас был центральный навигационный контроллер (UINavigationController), мы могли вызывать его где угодно и делать push или pop, но теперь только текущее представление может выполнять навигацию, используя NavigationLink, я сталкивалсята же самая проблема и решение состояло в том, чтобы внедрить UINavigationView в сиглтоне и вызывать его в любом месте, где я хочу выдвинуть представление типа MyNavigation.push(UIHostingController(rootView: NextView())).

В любом случае, я думаю, что этот подход неправильный, потому что для каждого экрана создается новый UIHostingController, поэтому мы теряем некоторые оптимизации, представленные SwiftUI. Если вы действительно хотите использовать мощные функции SwiftUI, я рекомендую вам перепроектировать ваше приложение для адаптации к возможностям SwiftUI

...