Swiftui 爆米花后请出示床单

Swiftui 爆米花后请出示床单,swiftui,ios13,Swiftui,Ios13,我有一个按钮,我想在上面显示两个视图,一个带有popover,一个带有sheet。 需要从popover的内容触发带有sheet I的演示文稿。 不幸的是,这不起作用,我得到以下错误: 2020-06-22 16:06:54.498830+0300 actionsheetpopover[66042:605785]警告:尝试演示已演示的内容 预期行为:我按“显示弹出窗口”,弹出窗口中的视图,我按“关闭弹出窗口和打开模式”,弹出窗口关闭,显示工作表中的视图 struct ContentView: V

我有一个按钮,我想在上面显示两个视图,一个带有popover,一个带有sheet。 需要从popover的内容触发带有sheet I的演示文稿。 不幸的是,这不起作用,我得到以下错误:

2020-06-22 16:06:54.498830+0300 actionsheetpopover[66042:605785]警告:尝试演示已演示的内容

预期行为:我按“显示弹出窗口”,弹出窗口中的视图,我按“关闭弹出窗口和打开模式”,弹出窗口关闭,显示工作表中的视图

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")
        }
    }
}

谢谢

您需要留出时间来关闭popover,因此请尝试以下操作

Button(action: {
    self.showPopover = false
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
      self.showModal = true
    }
}) {
    Text("Close popover and open modal")
}

这起作用了,谢谢!,但是,有没有其他不“手动”延迟流量的方法?