diff --git a/VDSSample/ViewControllers/CheckboxViewController.swift b/VDSSample/ViewControllers/CheckboxViewController.swift index 096f1f8..4fac3c4 100644 --- a/VDSSample/ViewControllers/CheckboxViewController.swift +++ b/VDSSample/ViewControllers/CheckboxViewController.swift @@ -11,11 +11,10 @@ import VDS import VDSColorTokens import Combine -class CheckboxViewController: UIViewController, StoryboardInitable { - deinit { - print("\(Self.self) deinit") - } - + + +class CheckboxViewController: ModelViewController, StoryboardInitable { + enum PickerType { case surface } @@ -31,10 +30,8 @@ class CheckboxViewController: UIViewController, StoryboardInitable { @IBOutlet weak var childTextField: UITextField! @IBOutlet weak var showErrorSwitch: UISwitch! @IBOutlet weak var errorTextField: UITextField! - - var model = DefaultCheckboxModel() + var checkbox = Checkbox() - var subscribers = Set() override func viewDidLoad() { super.viewDidLoad() @@ -50,6 +47,7 @@ class CheckboxViewController: UIViewController, StoryboardInitable { } func createModel() { + var model = DefaultCheckboxModel() model.labelText = "Terms and conditions" model.childText = "I agree to Verizon's terms and conditions click here" model.childTextAttributes = [ @@ -74,25 +72,22 @@ class CheckboxViewController: UIViewController, StoryboardInitable { } func setupBinding() { - //create the subject - let modelSubject = CurrentValueSubject(model) - //bind - checkbox.createBinding(with: modelSubject, storeIn: &subscribers) - - //update the model + checkbox.createBinding(with: model, storeIn: &subscribers) + //print out on subject changes - modelSubject + model .debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main) .sink { [weak self] updatedModel in - self?.model = updatedModel self?.showErrorSwitch.isOn = updatedModel.hasError + print("CheckboxViewController local hasError: \(self?.model.value.hasError)") print("CheckboxViewController hasError: \(updatedModel.hasError)") + print("CheckboxViewController local selected: \(self?.model.value.selected)") print("CheckboxViewController selected: \(updatedModel.selected)") - }.store(in: &subscribers) + } + .store(in: &subscribers) } - @IBAction func disabledChanged(_ sender: UISwitch) { checkbox.disabled = sender.isOn }