SwiftUI 预览 Sheet w/o 运行 实时预览?

SwiftUI Preview Sheet w/o Running Live Preview?

更新Xcode13 下面的代码示例在 Xcode 13.

中按预期工作

来自 Apple 框架工程师的更新 October 2020:

Unfortunately there is no current workarounds to let you preview this outside of the live preview.


是否可以在没有 运行 实时预览的情况下创建所呈现 sheet 的 SwiftUI 预览?例如:

struct Sheet_Previews: PreviewProvider {
    static var previews: some View {
        Text("Background").sheet(isPresented: .constant(true)) {
            Text("Sheet")
        }
    }
}

以上结果预览如下:

为了在预览中显示 sheet 内容,您必须 运行 实时预览:

只让预览提供显示父视图和 sheet 的两个视图,例如

struct Sheet_Previews: PreviewProvider {
    static var previews: some View {
        Group {       // << will create two previews
            Text("Background")  // << parent view here
            Text("Sheet")       // << sheet view here
        }
    }
}

Xcode 13.0 似乎可以在不启动实时预览的情况下正确处理此问题。

现在可以正常工作了:

struct Sheet_Previews: PreviewProvider {
    static var previews: some View {
        Text("Background").sheet(isPresented: .constant(true)) {
            Text("Sheet")
        }
    }
}