Как я могу сохранить список структур представления в SwiftUI? - PullRequest
2 голосов
/ 07 мая 2020

Поскольку SwiftUI NavigationView чрезвычайно жесткий и не обеспечивает простой способ программной c навигации, я хотел создать AppNavigationView, который имеет массив представлений и обновляет его визуализированное представление на основе push / pop.

Поскольку представление SwiftUI является протоколом с связанным типом, я не могу ни создать массив представлений, ни даже передать несколько в моем public func pushView(view:View).

Итак, как я могу сохранить список Просмотреть структуры?

// Error: Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements.
@State var navigationStack: [View]

1 Ответ

2 голосов
/ 07 мая 2020

Swift не позволяет использовать протокол в качестве типа члена, поэтому наиболее подходящим вариантом будет использование

@State private var navigationStack: [AnyView]

//...

public func pushView<V:View>(view: V) {
   navigationStack.append(AnyView(view))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...