【发布时间】:2019-07-12 14:06:52
【问题描述】:
我正在尝试制作一些具有类似属性的 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 接受我的 SpecialViewA 作为 SpecialView。但是,在我得到的预览中 “无法将 'SpecialViewA' 类型的值转换为预期的参数类型 'some SpecialView'”。 并且在尝试显示时我得到: “[...] 要求 'some SpecialView' 符合 'View'”
我做错了什么?有没有更简单的方法?
【问题讨论】:
标签: swift swift-protocols swiftui