弹出导航的导航在SwiftUI中不起作用?

时间:2020-01-26 08:02:50

标签: ios swift swiftui swiftui-navigationlink

我有两个屏幕。第一个屏幕包含以下代码

NavigationLink(destination: SecondScreen()) {
                    Text("Scan Qr Code")
                }

NavigationLink导航到第二个可以正常工作的屏幕。在第二个屏幕中

struct SecondScreen: View {

    @Environment(\.presentationMode) var presentation

    var body: some View{
       Button("Done") {
                    self.presentation.wrappedValue.dismiss()
                }
   }}

第二个屏幕中的按钮会弹出到第一个屏幕,该按钮可以正常工作,但是一旦我回到第一个屏幕并单击NavigationLink,它就不会移到第二个屏幕。

1 个答案:

答案 0 :(得分:0)

这是一个解决方案。使用第一个屏幕上的按钮代替导航链接,然后使用该按钮弹出工作表。我测试了一下,对我有用!

struct ContentView: View {

@State private var showingAddExpense = false

var body: some View {

    NavigationView{

        Button(action: {

            self.showingAddExpense = true

        }) {

            Text("Button")

        }
            .sheet(isPresented: $showingAddExpense) {
            SecondScreen()
            }
    }
}
}    


struct SecondScreen: View {

@Environment(\.presentationMode) var presentation

var body: some View{

    NavigationView{

        Button("Done") {
             self.presentation.wrappedValue.dismiss()
         }
    }
}
}