【发布时间】:2022-02-07 00:21:10
【问题描述】:
我想将 SwiftUI Views 显示为 UIViewController 的子视图。这些视图必须实现一个协议。
我有这个:
protocol ContentViewProtocol : View
{
var values: [CGFloat] { get }
}
...
import SwiftUI
struct SearchContentView : ContentViewProtocol
{
var values: [CGFloat] = [0.5, 0.7]
var body: some View
{
VStack
{
...
}
}
}
...
func showContent(view: ContentViewProtocol) <=== ERROR
{
var child = UIHostingController(rootView: view) <=== SAME ERROR
...
}
我收到以下错误:Protocol 'ContentViewProtocol' can only be used as a generic constraint because it has Self or associated type requirements
当使用普通的View 作为函数参数类型时,我得到了同样的错误(func showContent(view: View) 也是如此)。
如何防止这种情况发生?
【问题讨论】:
标签: ios swift swiftui uikit protocols