微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当视图消失时退出EditMode

如何解决当视图消失时退出EditMode

我用EditMode输入EditButton,并且我想在我的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。 / p>

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。