不确定这是否是SwiftUI(XCode 11.0 beta 3(11M362v))中的错误,还是我在这里遗漏了一些东西。
如何使用SwiftUI在列表中使用PresentationLink重新打开DetailView?
在下面的示例中删除列表可以按预期工作:
struct ContentView : View {
var body: some View {
List {
PresentationLink(destination: DetailView()) {
Text("Open Detail View")
}
}
}
}
struct DetailView : View {
@Environment(\.isPresented) var isPresented: Binding<Bool>
var body: some View {
NavigationView {
Text("Detail View")
.navigationBarTitle(Text("Details"), displayMode: .inline)
.navigationBarItems(
trailing: Button(action: { self.isPresented?.value.toggle() }) {
Text("Close")
}
)
}
}
}
请注意,当我使用Button的实现替换PresentationLink时,会得到相同的行为:
Button(action: { self.showModal = true }) { ... }.presentation(modal: Modal?)