2015-03-30 2 views
1

Я работаю с XLForm с этой простой формой. Код написан в Swift. У меня проблема с проверкой - я бы хотел использовать внутренний валидатор XLForm для электронной почты и для других полей, но я не знаю, как это сделать. Мне просто нужно проверить, заполнены ли другие поля данными. Руководство написано в Obj-C, и я не мог найти никаких примеров в Swift. Может ли кто-нибудь передать мне некоторые подсказки о том, как его реализовать? Я пытался с userEmail.required = true, но он не работает. Я искал какой-то метод для реализации в методе saveTapped, чтобы проверять поля перед отправкой формы, но я не смог найти какое-либо решение.XLForm валидация в 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 
} 

}

ответ

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 
    } 

положить этот код в ваш saveTapped

Смежные вопросы