【问题标题】:Navigation of Pop and Push not working in SwiftUI?Pop 和 Push 的导航在 SwiftUI 中不起作用?
【发布时间】:2020-01-26 08:02:50
【问题描述】:

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

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时,它不会移动到第二个屏幕。

【问题讨论】:

标签: ios swift swiftui swiftui-navigationlink


【解决方案1】:

这里有一个解决方案。使用第一个屏幕上的按钮而不是导航链接,并使用该按钮弹出一个工作表。我对此进行了测试,它对我有用!

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()
         }
    }
}
}

【讨论】:

  • 它将第二个屏幕显示为一个模式,用户可以在我不想要的顶部滑动时将其关闭
猜你喜欢
  • 2020-03-20
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 2014-11-19
  • 2022-06-17
相关资源
最近更新 更多