Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何知道NavigationView在SwiftUI中弹出?_Ios_Swiftui_Navigationview - Fatal编程技术网

Ios 如何知道NavigationView在SwiftUI中弹出?

Ios 如何知道NavigationView在SwiftUI中弹出?,ios,swiftui,navigationview,Ios,Swiftui,Navigationview,当用户点击后退按钮时,我们可以获取事件并做些什么吗 我试过使用onDisappear查看视图,但不希望孩子消失和家长出现的顺序。因此,我正在寻找一种方法来钩住back事件。我认为您可以使用isActive并监听绑定中的更改,我知道绑定没有didSet,但您可以使用此扩展添加它 扩展绑定{ func didSet(执行:@escaping(Value)->Void)->绑定{ 返回绑定( 获取:{ 返回self.wrappedValue }, 设置:{ 执行($0) self.wrappedVal

当用户点击后退按钮时,我们可以获取事件并做些什么吗


我试过使用
onDisappear
查看视图,但不希望孩子消失和家长出现的顺序。因此,我正在寻找一种方法来钩住back事件。

我认为您可以使用isActive并监听绑定中的更改,我知道绑定没有
didSet
,但您可以使用此扩展添加它

扩展绑定{
func didSet(执行:@escaping(Value)->Void)->绑定{
返回绑定(
获取:{
返回self.wrappedValue
},
设置:{
执行($0)
self.wrappedValue=$0
}
)
}
}
然后可以添加状态以监视视图的状态

struct ContentView:View{
@表示的状态:Bool=false
var body:一些观点{
导航视图{
导航链接(文本(“跟随到文本”),目标:文本(“详细视图”),isPresented:$isPresented.didSet{if!self.isPresented{print(“反压”)})
}
}

目前,我不知道没有自定义按钮,还有什么其他方法可以实现您想要的功能

我认为您可以使用iActive并监听绑定中的更改,我知道绑定没有
didSet
,但您可以使用此扩展添加它

扩展绑定{
func didSet(执行:@escaping(Value)->Void)->绑定{
返回绑定(
获取:{
返回self.wrappedValue
},
设置:{
执行($0)
self.wrappedValue=$0
}
)
}
}
然后可以添加状态以监视视图的状态

struct ContentView:View{
@表示的状态:Bool=false
var body:一些观点{
导航视图{
导航链接(文本(“跟随到文本”),目标:文本(“详细视图”),isPresented:$isPresented.didSet{if!self.isPresented{print(“反压”)})
}
}

目前,我不知道没有自定义按钮,还有什么其他方法可以做你想做的事情

你可以使用修饰符
onDisappear
,我不理解你的确切情况,因为你需要确切的返回事件

struct ContentView: View {
    @State var isPresented: Bool = false

    var destination: some View {
        Text("Detail")
                .onDisappear(perform: {
                    print("On Disappear")
                })
    }

    var body: some View {
        NavigationView {
            NavigationLink(destination: destination, isActive: $isPresented) {
                Text("Main")
            }
        }
    }
}

你可以使用修饰语
onDisappear
,我不理解你的确切情况,因为你需要确切的back事件

struct ContentView: View {
    @State var isPresented: Bool = false

    var destination: some View {
        Text("Detail")
                .onDisappear(perform: {
                    print("On Disappear")
                })
    }

    var body: some View {
        NavigationView {
            NavigationLink(destination: destination, isActive: $isPresented) {
                Text("Main")
            }
        }
    }
}