2015-03-30 1 views
1

Je travaille avec XLForm avec ce formulaire simple. Le code est écrit en Swift. J'ai un problème avec la validation - je voudrais utiliser le validateur interne de XLForm pour le courrier électronique et pour d'autres domaines, mais je ne sais pas comment. Je dois juste vérifier si d'autres champs sont remplis de données. Le manuel est écrit en Obj-C et je n'ai trouvé aucun exemple dans Swift. Quelqu'un pourrait-il me passer quelques conseils sur la façon de l'implémenter? J'essayais avec userEmail.required = true, mais cela ne fonctionne pas. Je cherchais une méthode à implémenter dans la méthode saveTapped, pour valider les champs avant d'envoyer le formulaire, mais je n'ai pas trouvé de solution.Validation XLForm dans Swift

class FormViewController: XLFormViewController { 


required init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder); 
    self.setupForm() 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 
@IBAction func saveTapped(sender: AnyObject) { 


      println(form.formRowWithTag("userEmail").value as? String) 
      println(form.formRowWithTag("userPassword").value as? String) 
      println(form.formRowWithTag("userName").value as? String) 

} 

private func setupForm() { 

    let form = XLFormDescriptor(title: "Registration") 

    // Section 1 
    let section1 = XLFormSectionDescriptor.formSection() as XLFormSectionDescriptor 
    form.addFormSection(section1) 

    let userEmail = XLFormRowDescriptor(tag: "userEmail", rowType: XLFormRowDescriptorTypeText, title: "Email") 
    userEmail.required = true 
    section1.addFormRow(userEmail) 

    let userPassword = XLFormRowDescriptor(tag: "userPassword", rowType: XLFormRowDescriptorTypePassword, title: "Password") 
    userPassword.required = true 
    section1.addFormRow(userPassword) 


    let userName = XLFormRowDescriptor(tag: "userName", rowType: XLFormRowDescriptorTypePassword, title: "First name") 
    userName.required = true 
    section1.addFormRow(userName) 


    self.form = form 
} 

}

Répondre

1
let validationErrors:NSArray = self.formValidationErrors() 
    if (validationErrors.count > 0) { 
     var errorString = "" 
     for error in validationErrors { 
      errorString += error.localizedDescription + "\n" 
     } 
     UIAlertView(title: "Error! Please check again.", message: errorString, delegate: nil, cancelButtonTitle: "OK").show() 
     return false 
    } 

mettre ce code dans votre saveTapped