当用户点击后退按钮时,我们可以获取事件并执行某些操作吗?
我已经尝试过使用onDisappear
作为视图,但是不希望出现孩子消失和父母出现的顺序。因此,我正在寻找挂钩事件的方法。
我认为您可以使用isActive并监听绑定中的更改,我知道绑定没有didSet
,但可以使用此扩展名添加它]]
extension Binding { func didSet(execute: @escaping (Value) ->Void) -> Binding { return Binding( get: { return self.wrappedValue }, set: { execute($0) self.wrappedValue = $0 } ) } }
然后您可以添加状态以监视视图的状态
struct ContentView: View { @State isPresented: Bool = false var body: some View { NavigationView { NavigationLink(Text("Follow to a Text"), destination: Text("detail view"), isPresented: $isPresented.didSet{ if !self.isPresented { print("Back Pressed") } }) } }
目前,我不知道没有自定义按钮的任何其他方式可以完成您想要的事情
您可以使用修饰符onDisappear
,我不知道这是否在所有情况下都能解决您的问题,但这是一种简单的方法。