我注意到.popoverSwiftUI 中只能有一个修饰符。我必须呈现两种可能的简单弹出窗口,其中一个是 a MenuView,另一个是CreateChannelView.
为此我有:
@State private var popover: some View
@State private var showPopover = false
Run Code Online (Sandbox Code Playgroud)
然后是修饰符:
.popover(isPresented: self.$showPopover) {
self.popover
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我收到错误时,我不知道如何分配MenuView或CreateChannelView的实例:popover
无法将“MenuView”类型的值分配给“some View”类型
这与在方法中传递通用视图的问题有点不同init。
解决方案是使用AnyView:
@State private var popover: AnyView
Run Code Online (Sandbox Code Playgroud)
那么它可以被赋值为:
self.popover = AnyView(CreateChannelView(showing: self.$showPopover))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4119 次 |
| 最近记录: |