从解析结果登录验证

时间:2016-12-13 12:00:29

标签: ios swift login

通过发送userName和密码,我已成功解析了我发出的SOAP WebServices请求的结果。

但是现在我需要验证这个登录功能,如果是,则以编程方式转换为新视图:

let menuPageView =  (self.storyboard?.instantiateViewController(withIdentifier: "MenuCentral"))!
self.present(menuPageView, animated: true, completion: nil)

问题是我不知道如何或在何处添加此类验证。

    class LoginCentralViewController: UIViewController, SOAPServiceProtocol {
        var chave = ChaveWebService().chave()
        var soapService : SOAPService?
        var resultadoLoginCentral : [LoginCentralModel]!


        @IBOutlet weak var txtUsuarioOUTLET: UITextField!
        @IBOutlet weak var txtSenhaOUTLET: UITextField!
        @IBOutlet weak var btnAcessarOUTLET: UIButton!


        override func viewDidLoad() {
            super.viewDidLoad()
            soapService = SOAPService(delegate: self)

            print(chave)


        }

        @IBAction func btnAcessarACTION(_ sender: Any) {
            soapService?.loginCentral(userName: txtUsuarioOUTLET.text!, password: txtSenhaOUTLET.text!, methodName: nomeServico)

            UIApplication.shared.isNetworkActivityIndicatorVisible = true


        }



        func didSuccessRequest(results: XMLIndexer, requestName: String) {
            UIApplication.shared.isNetworkActivityIndicatorVisible = false

            switch requestName {
            case nomeServico:
                do{
                    resultadoLoginCentral = try LoginCentralModel.realizarLoginCentral(results: results)

                } catch let error as XMLParseError{
                    print(error.description)
                    return
                } catch {
                    print(error)
                    return
                }

                print("codigoCliente = ", resultadoLoginCentral[0].codigoCliente)
                print("permissoes = " , resultadoLoginCentral[0].permissoes)
                break
            default:
                break
            }




        }

        func didFailRequest(err: String, requestName: String) {
            UIApplication.shared.isNetworkActivityIndicatorVisible = false

            switch requestName {
            case nomeServico:
             return
            default:
                break
            }
        }

 func showAlert() {
        let loginAlert = UIAlertController(title: "Central do Assinante", message: "Login/Senha inválidos", preferredStyle: .alert)
        let acaoDefault = UIAlertAction(title: "OK", style: .destructive, handler: nil)
        loginAlert.addAction(acaoDefault)
        present(loginAlert, animated: true, completion: nil)

    }
}

1 个答案:

答案 0 :(得分:1)

您可以在此处输入验证码

 do{
     resultadoLoginCentral = try LoginCentralModel.realizarLoginCentral(results: results)

   //Put here code 
   // we need to call this in main thread 
     DispatchQueue.main.sync {

        if resultadoLoginCentral.codigoCliente.characters.count > 0 && resultadoLoginCentral.permissoes.characters.count > 0{{
           // Login process

       }else{
        //Show Alert
     }
   }
 }

希望这有帮助