【发布时间】:2020-11-08 19:47:22
【问题描述】:
这个错误快把我逼疯了。有时(大多数情况下)呈现的工作表在打开时第一次被关闭。这仅在设备上发生,并且仅在应用程序首次启动时发生。以下是在运行 iOS 14.1 的 iPhone 11 上使用 Xcode 12.1 构建的效果(也可以在运行 iOS 14.0.1 的 iPhone 7 Plus 上重现):
视频中的步骤:
- 我打开应用程序
- 快速导航到详细信息视图
- 打开工作表
- Red Sheed 被系统解散???
- 我再次打开工作表,它仍按预期显示在屏幕上。
这是 SwitUI App 项目(使用 UIKIt App Delegate)和部署 iOS 14。代码:
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: DetailsView()) {
Text("Open Details View")
}
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
struct DetailsView: View {
@State var sheetIsPresented: Bool = false
var body: some View {
VStack {
Button("Open") {
sheetIsPresented.toggle()
}
}.sheet(isPresented: $sheetIsPresented, content: {
SheetView()
})
}
}
struct SheetView: View {
var body: some View {
Color.red
}
}
我可以通过删除行 .navigationViewStyle(StackNavigationViewStyle()) 来解决这个问题,但我的项目中需要 StackNavigationViewStyle。任何帮助将不胜感激。
更新:Apple 论坛上有一个类似的post,其工作表视图随机出现异常。
我发现的一种解决方案是将工作表移动到 NavigationLink 之外的根视图(在我的示例中为 ContentView),但这不是理想的解决方案。
【问题讨论】:
-
我在物理设备上试过没问题!在 SE2 上测试
-
@Omid 谢谢。您能否多次尝试并快速完成所有操作(导航)?每次尝试后,请强制关闭应用
-
我尽我所能,发送到后台,然后返回到前台,向上,向下滑动,也可以多次打开,没问题!你试过干净的设备吗?过去发生过几次,旧项目崩溃对设备产生了一些影响
-
在物理设备上或使用 Xcode 版本 12.1 (12A7403) 的模拟器上没有问题
-
在 iPhone 7 Plus (iOS 14.0.1) 上测试过,同样的问题。