我想展示一个由模态表单触发的警告。这是一个小的演示项目:
import SwiftUI
struct ContentView: View {
@State private var showSheet = false
@State private var showAlert = false
var body: some View {
Button("Press") {
showSheet = true
}
.sheet(isPresented: $showSheet) {
Button("Close with alert") {
showSheet = false
showAlert = true
}
}
.alert(isPresented: $showAlert) {
Alert(title: Text("Alert"))
}
}
}
点击“Press”按钮后,一个模态框出现,其中有一个名为“Close with alert”的按钮。如果按下此按钮,则关闭该模态框并什么也不会发生。我期望弹出警告信息。
似乎隐藏该模态框的动画导致了问题,因为SwiftUI在将showSheet设置为false后似乎并没有将该模态框视为已关闭。以下警告信息支持这一理论:
[Presentation] Attempt to present on <: 0x7fbbaa60b7d0> (from <: 0x7fbbaa60b7d0>) which is already presenting <: 0x7fbbaa413200>.