【发布时间】:2020-01-12 08:42:13
【问题描述】:
我有以下示例视图来尝试SwiftUI 中sheet 的行为:
import SwiftUI
struct Word: Identifiable, Codable {
var id: String
}
struct TestView: View {
@State var isPresented = false
var items: [Word] = [Word(id: "Test1"),
Word(id: "Test2"),
Word(id: "Test3")]
var body: some View {
NavigationView {
List {
ForEach(items) { word in
Text(word.id)
}
}
.sheet(isPresented: $isPresented) {
SomeTestViewInsideTheSheet(action: {
self.isPresented = false
})
.frame(minHeight: 0, maxHeight: 400, alignment: .center)
}
.navigationBarTitle(Text("My Title"))
}
}
}
struct SomeTestViewInsideTheSheet: View {
var action: ()->()
var body: some View {
VStack {
Text("Test View")
Button("Dismiss") {
self.action()
}
}
}
}
我只是想了解: list 和 sheet 之间的关系是什么?为什么我应该在列表末尾使用.sheet 将工作表与列表联系起来?
在此示例中显示工作表的正确方法是什么。
附言示例代码在 XCode 项目中编译良好,但在 Playground 中编译不正常。
【问题讨论】: