我有一个按钮,我要在该按钮上显示两个视图,一个带有弹出窗口,一个带有工作表。 需要从弹出窗口的内容中触发带有工作表I的演示。 不幸的是,这不起作用,我收到以下错误:
2020-06-22 16:06:54.498830 + 0300 actionsheetpopover [66042:605785]警告:尝试在<< em> TvGC7over10UI11 上显示<< em> TtGC7SwiftUIP13 $ 7fff2c9bdf5c22SheetHostingControllerVS_7AnyView :0x7f81a590b9c0> :0x7f81a5909700>已经显示<< em> TtGC7SwiftUI19UIHostingControllerVS_7AnyView :0x7f81a0d0b4f0>
预期的行为:我按:“显示弹出窗口”,出现弹出窗口中的视图,然后按:“关闭弹出窗口并打开模式”,弹出窗口被关闭,并显示工作表中的视图。
struct ContentView: View {
@State var showPopover = false
@State var showModal = false
var body: some View {
Button(action: {
self.showPopover = true
}) {
Text("Show popover")
}
.popover(isPresented: $showPopover) {
Button(action: {
self.showPopover = false
self.showModal = true
}) {
Text("Close popover and open modal")
}
}
.sheet(isPresented: $showModal) {
Text("Modal")
}
}
}
谢谢!
答案 0 :(得分:1)
您需要花些时间关闭弹出窗口,因此请尝试以下操作
Button(action: {
self.showPopover = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.showModal = true
}
}) {
Text("Close popover and open modal")
}