UIAlertControllers未执行或未显示。如果我只写一条打印语句,那么控制台中会有输出,但是现在打印语句也没有被执行(如果我将它们与UIAlertControllers一起编写,就像我在下面编写的代码中一样)。

 Alamofire.request(some_url, method: .post, parameters: data, encoding: URLEncoding.default, headers: nil).responseJSON{
                response in

                let json = JSON(response.result.value)

                print(json)
                self.eventid = json[0]["EventRegID"].stringValue

                if !json[0]["AuthKeyError"].exists(){
                    if !json[0]["ExceptionOccured"].exists(){
                        if !json[0]["RegistrationFailed"].exists() {
                            if !json[0]["EventInHold"].exists() {
                                if json[0]["RegistrationSuccess"].exists() {
                                    let alertController = UIAlertController(title: "", message: json[0]["RegistrationSuccess"].stringValue, preferredStyle: .alert)
                                    let no1Action = UIAlertAction(title: "OK", style: .default) { (action) -> Void in
                                        print("The user has registered successfully")
                                    }
                                    alertController.addAction(no1Action)
                                }
                                else{

                                }
                            }
                            else {
                                let alertController = UIAlertController(title: "", message: "Event is on hold.", preferredStyle: .alert)
                                let no2Action = UIAlertAction(title: "OK", style: .default) { (action) -> Void in
                                    print("The event is on hold.")
                                }
                                let yes2Action = UIAlertAction(title: "GO", style: .default) { (action) -> Void in
                                    self.performSegue(withIdentifier: "bullshit", sender: self)
                                }
                                alertController.addAction(no2Action)
                                alertController.addAction(yes2Action)
                            }
                        }
                        else {
                            print("Registration failed due to connection issues. Please login.")
                            let alertController = UIAlertController(title: "", message: "Registration failed", preferredStyle: .alert)
                            let no3Action = UIAlertAction(title: "OK", style: .default) { (action) -> Void in
                                print("The registration failed")
                            }
                            alertController.addAction(no3Action)
                        }
                    }
                    else {
                        print("There's some problem with the database")
                        let alertController = UIAlertController(title: "", message: "Some problem with the server", preferredStyle: .alert)
                        let no4Action = UIAlertAction(title: "OK", style: .default) { (action) -> Void in
                            print("The user has registered successfully")
                        }
                        alertController.addAction(no4Action)
                    }
                }
                else {
                    print("AuthKeyError")
                    let alertController = UIAlertController(title: "", message: "Auth key error", preferredStyle: .alert)
                    let no5Action = UIAlertAction(title: "OK", style: .default) { (action) -> Void in
                        print("AAUTH KEY ERROR")
                    }
                    alertController.addAction(no5Action)
                }
            }

        }
        else {
            print("not ok")

        }



    }

最佳答案

您需要在addAction之后出示alertcontroller

presentViewController(alertController, animated: true, completion: nil)


也许您必须在新操作中显示它

OperationQueue.main.addOperation {
   presentViewController(alertController, animated: true, completion: nil)
}

关于ios - 想要在Alamofire reponseJSON块中使用UIAlertController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41985589/

10-10 11:31