SwiftUI:无法在TabView中访问编辑模式

SwiftUI:无法在TabView中访问编辑模式,swift,swiftui,Swift,Swiftui,我目前有一个视图HostView,它提供HostSummaryView和EditHostSummaryView,其中前者响应editMode.wrappedValue?==。不活动主机视图如下所示: struct HostView: View { @Environment(\.editMode) var editMode var body: some View { HStack { EditButton() }

我目前有一个视图
HostView
,它提供
HostSummaryView
EditHostSummaryView
,其中前者响应
editMode.wrappedValue?==。不活动
<代码>主机视图如下所示:

struct HostView: View {
    @Environment(\.editMode) var editMode
    var body: some View {
        HStack {
            EditButton()
        }
        
        if editMode?.wrappedValue == .inactive {
            HostSummary()
        } else {
            EditHostSummary()
        }
    }
}
struct RootView: View {
    @State private var selectedTab = 0
    var body: some View {
        TabView(selection: $selectedTab) {
            View1()
                .onTapGesture { self.selectedTab = 0 }
                .tag(0)
            
            View2()
                .tag(1)
            
            HostView()
                .tag(2)
        }
    }
}
我有一个
RootView
,其中包含一个
TabView
,如下所示:

struct HostView: View {
    @Environment(\.editMode) var editMode
    var body: some View {
        HStack {
            EditButton()
        }
        
        if editMode?.wrappedValue == .inactive {
            HostSummary()
        } else {
            EditHostSummary()
        }
    }
}
struct RootView: View {
    @State private var selectedTab = 0
    var body: some View {
        TabView(selection: $selectedTab) {
            View1()
                .onTapGesture { self.selectedTab = 0 }
                .tag(0)
            
            View2()
                .tag(1)
            
            HostView()
                .tag(2)
        }
    }
}
我尝试将
@Environment(\.editMode)var editMode
传递给
HostView
,但这并没有解决问题。
编辑按钮
不会在
主机视图
中切换
编辑模式
。但是,
HostView
在我通过非
选项卡视图
视图访问它时起作用


我如何才能让它工作?

我找不到以前关于这个问题的问题,但众所周知,有些东西在
选项卡视图中不起作用,您必须将其向下推到
视图中

我认为这是一个错误

struct EditableHost: View {
    @State private var selectedTab = 0
    var body: some View {
        TabView(selection: $selectedTab) {
            Text("View 1")
                .onTapGesture { self.selectedTab = 0 }
                .tag(0)
            
            Text("View 2")
                .tag(1)
            ParentHostView()
                .tabItem { Text("host") }
                .tag(2)
        }
        
    }
}
struct ParentHostView: View {
    @State var active: Bool = true
    var body: some View {
        NavigationView{
            NavigationLink(
                destination: HostView(),
                isActive: $active,
                label: {
                    Text("HOST")
                })
        }.navigationViewStyle(StackNavigationViewStyle())
    }
}
struct HostView: View {
    @Environment(\.editMode) var editMode
    var body: some View {
        VStack{
            HStack {
                EditButton()
            }
            if editMode?.wrappedValue == .inactive {
                Text("HostSummary")
            } else {
                Text("EditHostSummary")
            }
        }.navigationBarBackButtonHidden(true)
    }
}