ViewにToggleを配置しました。
Viewは、ViewModelからModelのisToggleの値の変更を取得し、
Toggleのオンオフを切り替えようとしています。
しかし、下記の実装ではToggleはクリックしても初期値のtrueから変更されません。
(.constant()は定数を示しているので値が変化していないようです。)
MVVMを意識した記述をする場合、どのように記述すべきでしょうか?
ご教授お願いいたします。
View
import SwiftUI struct ContentView: View { @ObservedObject var viewModel: ViewModel = ViewModel() var body: some View { Toggle("hogehoge", isOn: .constant(viewModel.isToggle)) .padding() } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
ViewModel
import Foundation import SwiftUI class ViewModel: ObservableObject { @Published var model: Model = Model() var isToggle: Bool { return model.isToggle } }d
Model
import Foundation struct Model { var isToggle: Bool = true }
環境
- macOS : 11.6
- Xcode : 13.2.1
まだ回答がついていません
会員登録して回答してみよう