uiAlertController有时不取消

时间:2018-07-28 10:16:11

标签: swift xcode uialertcontroller http-get

我有一个登录按钮,它是http get服务,我运行一个弹出警报,等待用户点击按钮时等待,并在获取数据时将其关闭。

但是有时候加载警报很糟糕。可以在iPhone 5s上测试它,但是可以在模拟器上正常工作。我在做什么错了??

IF

popalert变量被声明为全局

这是等待中的弹出警报:

    @IBAction func loginButton(_ sender: Any) {


        phone=phoneText.text!

       if (validation(phone: phone)){

            popUpLoading()


           guard let url=URL(string: address+"uSers/checkUser/\(phone)") else{return}


            print(url)
            var requst=URLRequest(url: url)

            requst.httpMethod="GET"


            URLSession.shared.dataTask(with: requst, completionHandler: { (data, response, error) in

                if let response=response{
                    //print(response)
                }
                if let data=data{



                    do{


                        let json=try? JSONSerialization.jsonObject(with: data, options:JSONSerialization.ReadingOptions.mutableLeaves) as! [String:Any]

                        print("jsom : ",json)

                        DispatchQueue.main.async {

                            self.popalert.dismiss(animated: true, completion: {

                                let data=json?["data"] as! String

                                print("data : ",data)

}
}

1 个答案:

答案 0 :(得分:1)

您调用了dismiss函数,

(self.popalert.dismiss(动画:true,完成:{)

在响应调用中。因此,仅当您从URL获得正确的响应时,警报视图才会被隐藏。

您应该在两种情况下都隐藏警报视图  -因此,对else语句使用if条件并关闭alertView