Swift 如果通过滑动取消返回上一屏幕的过程,导航栏将保持不变而不会消失

Swift 如果通过滑动取消返回上一屏幕的过程,导航栏将保持不变而不会消失,swift,swiftui,Swift,Swiftui,使用navigationBarItems从视图中刷卡、取消刷卡并返回上一屏幕时,上一屏幕上的navigationBar保持不变而不消失 这是虫子吗 还是我的实现错了 你可以检查这种现象 struct-TopView:View{ var body:一些观点{ 导航视图{ VStack{ NavigationLink(目标:DetailView()){ 文本(“细节”) } } .navigationBarTitle(“顶部”) } } } 结构详细视图:视图{ var body:一些观点{ VSt

使用navigationBarItems从视图中刷卡、取消刷卡并返回上一屏幕时,上一屏幕上的navigationBar保持不变而不消失

这是虫子吗

还是我的实现错了

你可以检查这种现象

struct-TopView:View{
var body:一些观点{
导航视图{
VStack{
NavigationLink(目标:DetailView()){
文本(“细节”)
}
}
.navigationBarTitle(“顶部”)
}
}
}
结构详细视图:视图{
var body:一些观点{
VStack{
NavigationLink(目标:EditView()){
文本(“编辑”)
}
}
.navigationBarTitle(“详细信息”,显示模式:。内联)
}
}
结构编辑视图:视图{
@环境(\.presentationMode)私有变量presentationMode:绑定
var body:一些观点{
VStack{
文本(“标题”)
}
.navigationBarTitle(“编辑”,显示模式:。内联)
.航海术语(
尾随:
按钮(操作:{
self.presentationMode.wrappedValue.discouse()文件
}) {
文本(“保存”)
}
)
}
}
@环境(.PresentationMode)私有变量PresentationMode: 装订

如果这不存在,它就不会发生。

这里是修复方法

struct DetailView: View {
    var body: some View {
        VStack {
            NavigationLink(destination: EditView()) {
                Text("Edit")         
            }.isDetailLink(false)                            // << here !!
        }
        .navigationBarTitle("Detail", displayMode: .inline)
    }
}
struct DetailView:View{
var body:一些观点{
VStack{
NavigationLink(目标:EditView()){
文本(“编辑”)
}.isDetailLink(错误)//
struct DetailView: View {
    var body: some View {
        VStack {
            NavigationLink(destination: EditView()) {
                Text("Edit")         
            }.isDetailLink(false)                            // << here !!
        }
        .navigationBarTitle("Detail", displayMode: .inline)
    }
}