首页 > 解决方案 > 视图消失时退出编辑模式

问题描述

我输入EditModewithEditButton并且我想在我view消失时离开它,所以EditMode不会继续下一个view,这是我的代码:

@State var array = [1,2,3,4]

var body : some View {
  VStack{
    HStack{
      Spacer()
      EditButton()
    }
    List{
       ForEach(self.array){ int in
            Text(int)
       }
    }
  }
}

当用户移动到具有不同列表的不同视图时,EditButton之前没有按 Done,EditMode停留,但我希望它变为.inactive.

标签: iosswiftuiswiftui-list

解决方案


您可以使用@Environment(\.editMode)并将其设置为.inactivein onDisappear

struct ContentView: View {
    @Environment(\.editMode) var editMode
    
    var body: some View {
        VStack {
            ...
        }
        .onDisappear {
            editMode?.wrappedValue = .inactive
        }
    }
}

推荐阅读