Swiftui 迅捷-消失的原因

Swiftui 迅捷-消失的原因,swiftui,swiftui-navigationview,Swiftui,Swiftui Navigationview,假设我们在NavigationView堆栈中有一个视图。 此视图具有onDisappear处理程序。 当该视图被堆栈中的另一个视图覆盖时,以及当我们的视图从堆栈中弹出时,系统调用该处理程序 有没有办法找到真正的原因——是被掩盖了还是被揭穿了 好的,一些代码: var body: some View { NavigationView { NavigationLink(destination: DetailView()) {

假设我们在NavigationView堆栈中有一个视图。 此视图具有onDisappear处理程序。 当该视图被堆栈中的另一个视图覆盖时,以及当我们的视图从堆栈中弹出时,系统调用该处理程序

有没有办法找到真正的原因——是被掩盖了还是被揭穿了

好的,一些代码:

var body: some View {
    NavigationView 
    {
        NavigationLink(destination: DetailView()) 
        {
            Text("View details")
        }
    }
    .onAppear 
    {
        if <NavigationView was recently created?>  // the essence of the question
        {
            print("NavigationView was recently created")
        } 
        else 
        {
            print("DetailView popped and disappeared")
        }
    }
}
var主体:一些视图{
导航视图
{
NavigationLink(目标:DetailView())
{
文本(“查看详细信息”)
}
}
奥纳佩尔先生
{
如果//问题的实质是什么
{
打印(“导航视图是最近创建的”)
} 
其他的
{
打印(“详细视图弹出并消失”)
}
}
}

您只需在视图的
.on外观上调用所需的操作,该视图将覆盖或弹出到NavigationView堆栈的顶部。它应该按照你想要的方式工作。请随意与您正在尝试执行的操作共享一些代码。好的,假设,我将在。onAppear中完成。当这个视图被推送或子视图被弹出时,cat I如何区分这些情况?对不起,我不明白你在这里想做什么。你能给出一些你想要实现的代码吗?