diff --git a/VDSSample/ViewControllers/RadioButtonViewController.swift b/VDSSample/ViewControllers/RadioButtonViewController.swift index 1a264d3..2eb4156 100644 --- a/VDSSample/ViewControllers/RadioButtonViewController.swift +++ b/VDSSample/ViewControllers/RadioButtonViewController.swift @@ -35,7 +35,20 @@ class RadioButtonViewController: UIViewController, StoryboardInitable { override func viewDidLoad() { super.viewDidLoad() + view.addGestureRecognizer(UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:)))) + + componentContainerView.addSubview(radioButtonGroup) + radioButtonGroup.leadingAnchor.constraint(equalTo: componentContainerView.leadingAnchor, constant: 10).isActive = true + radioButtonGroup.topAnchor.constraint(equalTo: componentContainerView.topAnchor, constant: 20).isActive = true + radioButtonGroup.bottomAnchor.constraint(equalTo: componentContainerView.bottomAnchor, constant: -20).isActive = true + radioButtonGroup.trailingAnchor.constraint(equalTo: componentContainerView.trailingAnchor, constant: 10).isActive = true + setupPicker() + createModel() + setupBinding() + } + + func createModel(){ var model1 = DefaultRadioButtonModel() model1.value = "model 1 Value" model1.labelText = "Terms and conditions" @@ -51,20 +64,19 @@ class RadioButtonViewController: UIViewController, StoryboardInitable { var model2 = DefaultRadioButtonModel() model2.value = "model 2 Value" model2.childText = "Radio Sample 2" - - - surfaceLabel.text = model1.surface.rawValue - disabledSwitch.isOn = model1.selected - labelTextField.text = model1.labelText - childTextField.text = model1.childText - showErrorSwitch.isOn = model1.hasError - model.selectors = [model1, model2] + //set UI values + surfaceLabel.text = model.surface.rawValue + disabledSwitch.isOn = model.disabled + showErrorSwitch.isOn = model.hasError + labelTextField.text = model1.labelText + childTextField.text = model1.childText + radioButtonGroup.set(with: model) - - componentContainerView.addSubview(radioButtonGroup) - + } + + func setupBinding() { //create the subject let modelSubject = CurrentValueSubject(model) @@ -77,21 +89,13 @@ class RadioButtonViewController: UIViewController, StoryboardInitable { //print out on subject changes modelSubject.sink { [weak self] model in - self?.showErrorSwitch.isOn = model.hasError + self?.showErrorSwitch.isOn = model.hasError print("RadioButtonViewController hasError: \(model.hasError)") if let selectedModel = model.selectedModel { print("RadioButtonViewController selectedModel Id: \(selectedModel.id)") } }.store(in: &subscribers) - - radioButtonGroup.leadingAnchor.constraint(equalTo: componentContainerView.leadingAnchor, constant: 10).isActive = true - radioButtonGroup.topAnchor.constraint(equalTo: componentContainerView.topAnchor, constant: 20).isActive = true - radioButtonGroup.bottomAnchor.constraint(equalTo: componentContainerView.bottomAnchor, constant: -20).isActive = true - radioButtonGroup.trailingAnchor.constraint(equalTo: componentContainerView.trailingAnchor, constant: 10).isActive = true - - view.addGestureRecognizer(UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:)))) - setupPicker() }