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