从SwiftUI中的列表重新打开明细视图

时间:2019-07-15 00:22:41

标签: swift swiftui

不确定这是否是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?)

Demo

0 个答案:

没有答案