Swift 我可以创建从';继承的协议吗;视图';要显示特定的';查看';?

Swift 我可以创建从';继承的协议吗;视图';要显示特定的';查看';?,swift,swift-protocols,swiftui,Swift,Swift Protocols,Swiftui,我正在尝试创建一些具有类似属性的SwiftUI视图。所以我想为他们制定一个协议,并显示这个协议的一个实例 protocol SpecialView: View { ... } struct SpecialViewA : View, SpecialView { ... var body: some View { Text("Hello World!") } } struct ContentView: View { var currentlyDis

我正在尝试创建一些具有类似属性的SwiftUI视图。所以我想为他们制定一个协议,并显示这个协议的一个实例

protocol SpecialView: View { ... }

struct SpecialViewA : View, SpecialView {
    ...
    var body: some View {
        Text("Hello World!")
    }
}

struct ContentView: View {
    var currentlyDisplayedView: some SpecialView

    var body: some View{
        currentlyDisplayedView
    }

}

//in preview:
ContentView(SpecialViewA())
我希望ContentView接受我的SpecialView作为SpecialView。然而,在预览中,我得到了 “无法将'SpecialView'类型的值转换为预期的参数类型'some SpecialView'”。 当尝试显示时,我得到: “[…]要求“某些特殊视图”与“视图”一致”


我做错了什么?有更简单的方法吗?

您很接近…,但这将编译:

协议专用视图:视图{
}
结构SpecialView:视图,SpecialView{
var body:一些观点{
文本(“你好,世界!”)
}
}
结构ContentView:视图,其中V:SpecialView{
var currentlyDisplayedView:V
var body:一些观点{
当前显示视图
}
}
#如果调试
结构内容视图\u预览:PreviewProvider{
静态var预览:一些视图{
ContentView(currentlyDisplayedView:SpecialViewA())
}
}
#恩迪夫