我在 SwiftUI 中发现了一种奇怪且令人沮丧的行为。如果您在导航链接的视图中呈现工作表,然后(快速且按顺序):
应用程序将在返回根视图之前冻结。将应用程序置于后台并置于前台将使其脱离。
您必须非常快地执行这些步骤。有解决方法吗?我希望这两个手势都能工作而不会互相干扰。
此代码将重现该问题:
struct ContentView: View {
@State var showSheet = false
var body: some View {
NavigationView {
VStack {
NavigationLink("blah") {
VStack {
Button("Show Sheet") {
showSheet.toggle()
}
.sheet(isPresented: $showSheet, onDismiss: nil) {
Text("Sheet")
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是模拟器中问题的 gif。首先显示问题,然后显示如果您将应用程序置于后台,它会自行解决。
编辑:2022 年 10 月:此错误在 iOS 16 中仍然存在
编辑:2023 年 9 月:此错误在 iOS 17 中仍然存在