Ошибка при выполнении команды 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, Надеюсь, это поможет!

Другие вопросы по тегам