У меня есть Parse Sign Up, и у меня есть UIAlertController, и я хочу, чтобы UIAlertController отображался с индикатором, но увольнялся с другим контроллером UIAlertController при возникновении ошибки в регистрации.Замените UIAlertController другим UIAlertController
У меня есть несколько случаев неудачной регистрации, все работают до добавления UIAlertController с индикатором. Контроллер предупреждений индикатора отлично работает, когда регистрация успешно завершена, и она убирается правильно.
//create an alert controller
let pending = UIAlertController(title: "Creating New User", message: nil, preferredStyle: .Alert)
//create an activity indicator
let indicator = UIActivityIndicatorView(frame: pending.view.bounds)
indicator.autoresizingMask = .FlexibleWidth | .FlexibleHeight
//add the activity indicator as a subview of the alert controller's view
pending.view.addSubview(indicator)
indicator.userInteractionEnabled = false // required otherwise if there buttons in the UIAlertController you will not be able to press them
indicator.startAnimating()
self.presentViewController(pending, animated: true, completion: nil)
Вот код зарегистрируется, это работает
if signUpError == nil {
println("Sign Up Successful")
// Keep track of the installs of our app
var installation: PFInstallation = PFInstallation.currentInstallation()
installation.addUniqueObject("Reload", forKey: "channels")
installation["user"] = PFUser.currentUser()
installation.saveInBackground()
// to stop the uialertviewcontroller once sign up successful
pending.dismissViewControllerAnimated(true, completion: {
self.performSegueWithIdentifier("goToAppFromSignUp", sender: self)
})
}
Вот где я застрял, это лишь один из случаев, если я могу получить эту работу, я могу это сделать для других.
else {
println("Error Sign Up")
//If email has been used for another account kPFErrorUserEmailTaken
if(signUpError!.code == 203) {
let alertController = UIAlertController(title: "Sign Up Failed", message: "Sorry! Email has been taken! ", preferredStyle: .Alert)
let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in
// ...
}
alertController.addAction(OKAction)
self.presentViewController(alertController, animated: true) {
// ...
}
}
Моя мысль была уволить UIAlertController и показать следующий в блоке завершения
pending.dismissViewControllerAnimated(true, completion: {
self.presentViewController(alertController, animated: true) {
// ...
}
})
Но приложение зависает на ожидании оповещения контроллера (тот, с индикатором). , который уже представляет (0)
Любые идеи? Благодарю.
В разделе «Еще» вы не отпустите ожидающий контроллер. –