如何基于Swift UI中的不同类型标识符返回不同的View对象?
视图是SwiftUI中的协议,不能用作返回值。
func navigationAction(item: Item) -> ?? {
switch item.type {
case .text:
return Page()
default:
return TextPage()
}
}
您可以使用AnyView封装您要返回的视图。
switch item.type {
case .text:
return AnyView(Page())
default:
return AnyView(TextPage())
}
此外,请确保您的函数指定了返回类型。在这种情况下,AnyView。
如果您要在单独的swiftui视图中返回不同的视图,则只需将switch语句包装在group标记中,然后删除return命令。