作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Xcode 12 测试版 4
我有这个 ContentView 有两个不同的模态视图。我想使用 sheet(isPresented: onDismiss: content:)
显示第一个 View ,当它关闭时,自动显示第二个 View 。
这是我的代码
struct ContentView: View {
@State var showFirst = false
@State var showSecond = false
var body: some View {
VStack(spacing: 20) {
Text("showFirst: \(showFirst.description)")
Text("showSecond: \(showSecond.description)")
Button("show") {
showFirst.toggle()
}
.sheet(isPresented: $showFirst) {
showSecond.toggle()
} content: {
FirstView(isPresented: $showFirst)
}
Text("")
.sheet(isPresented: $showSecond) {
SecondView(isPresented: $showSecond)
}
}
}
}
struct FirstView: View {
@Binding var isPresented: Bool
var body: some View {
VStack {
Button("close") {
isPresented = false
}
Text("First View")
}
}
}
struct SecondView: View {
@Binding var isPresented: Bool
var body: some View {
VStack {
Button("close") {
isPresented = false
}
Text("Second View")
}
}
}
然后我运行代码。
Fatal error: SheetBridge: abandoned presentation detected: file SwiftUI, line 0
$showSecond
没有变成假的。
presentationMode.wrappedValue.dismiss()
而不是绑定(bind)
isPredented
,它也崩溃了。
最佳答案
解决方法是稍微延迟显示第二张纸,以使第一张纸有可能完全完成。
使用 Xcode 12/iOS 14 测试
Button("show") {
showFirst.toggle()
}
.sheet(isPresented: $showFirst) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { // << here !!
showSecond.toggle()
}
} content: {
FirstView(isPresented: $showFirst)
}
关于ios - SwiftUI 崩溃 : "SheetBridge: abandoned presentation detected" when dismiss a sheet view (which is triggered by another sheet view ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63293531/
Xcode 12 测试版 4 我有这个 ContentView 有两个不同的模态视图。我想使用 sheet(isPresented: onDismiss: content:)显示第一个 View ,当
我是一名优秀的程序员,十分优秀!