EnvironmentValuesとして扱っている。
ドキュメントより
@Environment(\.editMode) private var editMode
@State private var name = "Maria Ruiz"
var body: some View {
Form {
if editMode?.wrappedValue.isEditing == true {
TextField("Name", text: $name)
} else {
Text(name)
}
}
.animation(nil, value: editMode?.wrappedValue)
.toolbar { // Assumes embedding this view in a NavigationView.
EditButton()
}
}
編集モードの場合に TextField を使い、そうでない場合は Text を使うという事ができる。
.toolbar で編集ボタンを表示している。
変更する場合は下の様に書く。onAppear()内で書けば編集モードで開ける。
editMode?.wrappedValue = .active