View 消失时退出 EditMode

Exiting EditMode When View Disappears

我用 EditButton 输入 EditMode,我想在我的 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 上的完成,EditMode 保留,但我希望它变成 .inactive .

您可以使用 @Environment(\.editMode) 并在 onDisappear 中将其设置为 .inactive:

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