Все,не может отклонить вид контроллера с помощью закрытия в UIAlert
Я пытаюсь написать метод, который будет проходить замыкание в UIAlertAction таким образом, что при нажатии кнопки OK на предупреждения сливают, как предупреждение и контроллер вызывающего вида отклоняется.
Что у меня есть:
func displayErrMsg(ecode : errorCodes) ->() {
var etitle = ""
var etext = ""
var completionHandler: (()->())?
switch ecode {
case .NoError :
etitle = "Found You!"
etext = "Check your email for a link to reset your password"
completionHandler = { self.dismissViewControllerAnimated(true, { println("BUHBYE") })}
case .EmailAddressNotFound :
etitle = "Sorry, but we could not find you."
etext = "Have you registered?"
case .MalFormedEmailAddress :
etitle = "Opps!"
etext = "that is not a valid email address"
default : println(" unrecognized error code: \(ecode)")
}
userMessage(self, etitle, etext, completionHandler)
}
, который называет это:
public func userMessage(parent: UIViewController, title:String, message:String, completion:(() ->())?) {
var okButton : UIAlertAction
var alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
if let comp = completion {
okButton = UIAlertAction(title: "Ok", style: .Default, handler: { (alert) -> Void in
comp()
})
}
else
{
okButton = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, nil)
}
alert.addAction(okButton)
parent.presentViewController(alert, animated: true, completion: nil)
}
В сценарии, где ecode является .NoError, я вижу "BUHBYE" напечатанный в консоли, но вид не удаляется после нажатия кнопки ОК (предупреждение удаляется). Из того, что я знаю, контроллер вида, который должен быть уволен закрытием, является тем, из которого вызывается displayErrorMsg . Верный? Почему это не работает?
Любая помощь очень ценится. : пн:
У меня такая же проблема. Тем не менее, я путался с принятым ответом. Вы отказались от UIAlertController и используете UIAlertView? –