如何将动作绑定到navigationview后退按钮?

问题描述 投票:0回答:1

我想将一个操作绑定到导航视图工具栏中的后退按钮,可以吗?

var body: some View {
     List {
          ForEach(mainViewModel.items) { item in
              NavigationLink(destination: EditTaskView(item: item)) {
                  HStack {
                      ListRowView(item: item)
                  }
              }
         }
     }
}
button swiftui back navigationview swiftui-navigationlink
1个回答
1
投票

你不能直接绑定后退按钮,但你可以让导航链接本身根据状态被激活,然后像这样监听状态值的变化。请注意,这要求您将状态设置管理为 true(不像默认初始化程序那样自动点击)

struct ContentView: View {
  @State private var showingNavView = false
  var body: some View {
    NavigationView {
      List {
        NavigationLink("Sub View", isActive: $showingNavView) {
          SubView()
        }.onTapGesture {
          showingNavView = true
        }.onChange(of: showingNavView) { newValue in
          print(newValue) // Will change to false when back is pressed
        }
      }
    }
  }
}
struct SubView: View {
  var body: some View {
    ZStack {
      Color.green
      Text("Cool Beans")
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.