diff --git a/SwiftValidator/Core/Validator.swift b/SwiftValidator/Core/Validator.swift old mode 100644 new mode 100755 index f9b806c..6f5a6d5 --- a/SwiftValidator/Core/Validator.swift +++ b/SwiftValidator/Core/Validator.swift @@ -11,12 +11,13 @@ import UIKit @objc public protocol ValidationDelegate { func validationSuccessful() - func validationFailed(errors: [UITextField:ValidationError]) + func validationFailed(errors: [UITextField:ValidationError], validFields: [UITextField]) } public class Validator { // dictionary to handle complex view hierarchies like dynamic tableview cells public var errors = [UITextField:ValidationError]() + public var validFields = [UITextField]() public var validations = [UITextField:ValidationRule]() private var successStyleTransform:((validationRule:ValidationRule)->Void)? private var errorStyleTransform:((validationError:ValidationError)->Void)? @@ -28,6 +29,7 @@ public class Validator { private func validateAllFields() { errors = [:] + validFields = [] for (textField, rule) in validations { if let error = rule.validateField() { @@ -39,6 +41,8 @@ public class Validator { } } else { // No error + validFields.append(textField) + // let the user transform the field if they want if let transform = self.successStyleTransform { transform(validationRule: rule) @@ -74,7 +78,7 @@ public class Validator { if errors.isEmpty { delegate.validationSuccessful() } else { - delegate.validationFailed(errors) + delegate.validationFailed(errors, validFields: validFields) } } diff --git a/Validator/ViewController.swift b/Validator/ViewController.swift index 6d37f64..0bafdaf 100644 --- a/Validator/ViewController.swift +++ b/Validator/ViewController.swift @@ -71,7 +71,7 @@ class ViewController: UIViewController , ValidationDelegate, UITextFieldDelegate self.presentViewController(alert, animated: true, completion: nil) } - func validationFailed(errors:[UITextField:ValidationError]) { + func validationFailed(errors:[UITextField:ValidationError], validFields: [UITextField]) { print("Validation FAILED!") }