无法将“MenuView"类型的值分配给“some View"类型 [英] Cannot assign value of type 'MenuView' to type 'some View'

查看:26
本文介绍了无法将“MenuView"类型的值分配给“some View"类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我注意到在 SwiftUI 中只能有一个 .popover 修饰符.我必须展示两个可能的简单弹出框,其中一个是 MenuView,另一个是 CreateChannelView.

I noticed that you can only have a single .popover modifier in SwiftUI. I have to present two possible simple popovers, one of them a MenuView, the other a CreateChannelView.

为此我有:

@State private var popover: some View
@State private var showPopover = false

然后是修饰符:

.popover(isPresented: self.$showPopover) {
    self.popover
}

问题是我不知道如何在出现错误时将 MenuViewCreateChannelView 的实例分配给 popover:

The problem is that I don't see how can I assign instances of MenuView or CreateChannelView to popover as I get the error:

无法将MenuView"类型的值分配给some View"类型

Cannot assign value of type 'MenuView' to type 'some View'

这与 this question 稍有不同,后者在 init 中传递通用视图方法.

This is a little bit different than this question which passes generic views in the init method.

推荐答案

解决方案是使用 AnyView:

@State private var popover: AnyView

那么它可以被赋值为:

self.popover = AnyView(CreateChannelView(showing: self.$showPopover))

这篇关于无法将“MenuView"类型的值分配给“some View"类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆