Ошибка при выполнении команды presentViewController
Я уверен, что просто пропускаю один шаг, но я не могу понять, что. Я пытаюсь написать функцию, которую я могу неоднократно вызывать для проверки ошибок в нескольких полях. Когда обязательное поле пусто, вызывается функция, которая напоминает пользователю и не позволяет ему продолжить. Я написал код для ловушки ошибок в первом поле, но затем попытался сделать его функцией, которую я вызываю для остальных. Это только для тестирования, поэтому я знаю, что код работает по крайней мере для одного поля (что он делает).
Когда я запускаю и первое поле пусто, я получаю сообщение об ошибке и ожидаемое поведение. Когда я бегу, и в первом поле есть данные, а во втором нет, я не получаю сообщение об ошибке (вообще-то, никаких действий).
Я пытался добавить self.presentViewController(dataErrorAlert, animated: true, completion: nil)
в функции, но это ошибки, говоря:
не может вызвать 'presentViewContoller' со списком аргументов типа '((String, error: String) -> (), анимированный: Bool, завершение: nil)
Я не знаю, какие у меня есть варианты для вызова presentViewController
команда. Вот соответствующий код. Спасибо за помощь.
var missingDataError = ""
func dataErrorAlert(title:String, error:String) {
var dataMissingAlert = UIAlertController(title: title, message: missingDataError, preferredStyle:UIAlertControllerStyle.Alert)
dataMissingAlert.addAction((UIAlertAction(title: "OK", style: .Cancel, handler: nil)))
self.presentViewController(dataErrorAlert, animated: true, completion: nil)
}
@IBAction func next(sender: AnyObject) {
if enterPersonnelName.text == "" {
let dataErrorAlert = UIAlertController(title: "Oops", message: "The Name field is empty and is required information.", preferredStyle:UIAlertControllerStyle.Alert)
var cancelAction = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
dataErrorAlert.addAction(cancelAction)
self.presentViewController(dataErrorAlert, animated: true, completion: nil)
blankData = 1
} else { if enterDrugID.text == "" {
self.missingDataError = "The Drug ID field is empty and is required."
self.dataErrorAlert("Ooops", error: missingDataError)
blankData = 1
} else { if enterPackageNumber.text == "" {
self.missingDataError = "The Package Number field is empty and is required."
self.dataErrorAlert("Ooops", error: missingDataError)
blankData = 1
}
}
}
if blankData != 1 {
//add code to pass data to next veiw controller
//self.appIsWorking
performSegueWithIdentifier("goToDispenseScreenThree", sender: self)
}
blankData = 0
}
1 ответ
Кажется, что dataErrorAlert
это function
Я предполагаю, что вы хотите отобразить dataMissingAlert
это UIAlertController
, попробуй это:
self.presentViewController(dataMissingAlert, animated: true, completion: nil)
Вы, вероятно, должны попытаться переименовать свое предупреждение или function
как кажется у вас оба с именем dataErrorAlert
, Я обычно бы пользователь dataErrorAlertController
, Надеюсь, это поможет!