我敢肯定,我只是想走了一步,但我茫然地想知道要做什么。我正在尝试编写一个可以反复调用以对几个字段进行错误检查的函数。当必填字段为空时,将调用该函数以提醒用户,而不允许其继续进行。我编写了用于错误捕获第一个字段的代码,但随后尝试使其成为我剩下的函数。这仅用于测试,因此我知道代码至少适用于一个字段(确实如此)。

当我运行并且第一个字段为空时,我得到了错误消息和预期的行为。当我运行并且第一个字段有数据但第二​​个字段没有数据时,我没有收到错误消息(实际上完全没有活动)。

我试图在函数中添加self.presentViewController(dataErrorAlert, animated: true, completion: nil),但它显示错误消息:


  无法使用类型为'((String,error:String)->(),animated:Bool,complete:nil)的参数列表调用'presentViewContoller'


我不知道调用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
}

最佳答案

看来dataErrorAlertfunction,我猜您要显示dataMissingAlert就是UIAlertController,请尝试以下操作:

self.presentViewController(dataMissingAlert, animated: true, completion: nil)


您可能应该尝试重命名警报或function,好像您都使用名称dataErrorAlert一样,我通常会使用dataErrorAlertController
希望对您有所帮助!

09-12 04:51