Если не существует общего конкретного типа, который был бы у всех представлений, используемых в destination
, вы должны использовать структуру AnyView
, чтобы получить стертый тип бетона View
соответствующий объект.
ETA:
AnyView
имеет инициализатор, объявленный как init<V>(_ view: V) where V : View
, поэтому, где бы вы ни создавали свой AnimatingCard
, прежде чем вы должны написать:
AnimatingCard(title: title, subtitle: subtitle, color: color, destination: AnyView(view))
В качестве альтернативы, вы можете сделать инициализатор AnimatingCard
универсальным для всех View
-подобных типов и выполнить преобразование AnyView
внутри инициализатора, например:
init<V>(title : String, subtitle: String, color: Color, destination : V) where V: View {
self.title = title
self.subtitle = subtitle
self.color = color
self.destination = AnyView(destination)
}