2017-06-29 1 views
0

j'ai essayé d'implémenter des conditions conditionnelles en fonction des conditions particulières, mais je ne sais pas où je suis à la traîne.Si quelqu'un peut m'aider, il serait plus qu'un reconnaissant est le Code: - Il y a deux qui doivent enchaînements être manipulés, segueOtp & segueErrorcomment travailler avec le segue conditionnel

@IBAction func btnToOtpScreen(_ sender: Any) { 

     let providedMarketingRef = txtMarketingRef.text 
     //let providedhopName = txtShopName.text 

     if((providedMarketingRef?.isEmpty)!) 
     { 
      displayAlertMessage(messageToDisplay: "Enter Your Marketing Reference") 

     } 

     else 
     { 

      let myUrl = URL(string: "http://kumbhkaran.co.in/ios_otp_check/request_sms.php"); 

      //let myUrl = URL(string: "http://kumbhkaran.co.in/OTPCheck/request_sms.php"); 
      var request = URLRequest(url:myUrl!); 
      request.httpMethod = "POST"; 

      let postString = "email=\(Email)&mobile=\(UserName)&name=\(ShopName)" 

      request.httpBody = postString.data(using: String.Encoding.utf8); 

      let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in 

       DispatchQueue.main.async 
        { 

         //spinningActivity!.hide(true) 

         if error != nil { 
          self.displayAlertMessage(messageToDisplay: error!.localizedDescription) 
          return 
         } 

         do { 
          let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary 

          if let parseJSON = json { 

           var msg : String! 

           //getting json response 
           msg = parseJSON["message"] as! String? 

           print(msg) 

         if(msg == "SMS request is initiated! You will be receiving it shortly.") 
          { 

          //self.performSegue(withIdentifier: "segueOTP", sender: self) 

          self.GlobalSegue="segueOTP" 
          } 
          else if(msg == "Sorry! Error occurred in registration.") 
          { 
           //self.performSegue(withIdentifier: "segueError", sender: self) 
          self.GlobalSegue="segueError" 
          } 

          else if(msg == "Mobile number already existed!") 
          { 
          //self.performSegue(withIdentifier: "segueError", sender: self) 
          self.GlobalSegue="segueError" 
          } 
          else if(msg == "Sorry! mobile number is not valid or missing.") 
          { 
           //self.performSegue(withIdentifier: "segueError", sender: self) 
           self.GlobalSegue="segueError" 
          } 


          } 
         } catch{ 
          print(error) 
         } 



       } 

      } 

      task.resume() 


     } 

    } 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    if (GlobalSegue=="segueOTP") 
    { 
    let destViewController : OTPScreen = segue.destination as! OTPScreen 
    destViewController.Category = Category 
    destViewController.SubCategory = SubCategory 
    destViewController.ShopName = ShopName 
    destViewController.ManagerName = ManagerName 
    destViewController.ManagerMobile = ManagerMobile 
    destViewController.UserName = UserName 
    destViewController.Landline = Landline 
    destViewController.Email = Email 
    destViewController.Website = Website 
    destViewController.City = City 
    destViewController.Address = Address 
    destViewController.Area = Area 
    destViewController.Pincode = Pincode 
    destViewController.StartTime = StartTime 
    destViewController.EndTime = EndTime 
    destViewController.ShopStatus = ShopStatus 
    destViewController.HomeDelivery = HomeConsultancy 
    destViewController.Password = Password 
    destViewController.MarketingRef = txtMarketingRef.text! 
    destViewController.ImgShopName = ShopName 
    destViewController.OtherCategory = Other 
    destViewController.WorkerCount = WorkerCount 
    destViewController.latitude = lblLatitude.text! 
    destViewController.longitude = lblLongitude.text! 
} 
    else 
    { 
     var _ : ErrorController = segue.destination as! ErrorController 
    } 

} // ErrorController et félicitations sont deux vues différentes où je veux détourner en fonction des conditions.

+1

Quel est exactement votre problème? Ce qui se produit? Qu'est-ce que tu veux qu'il arrive? – Paulw11

+0

vérifier les conditions if else, ces segue ne fonctionnent pas. Deux différents segue doivent être invoqués dans différentes conditions – himesh

+0

Définissez un point d'arrêt et parcourez votre code. Cela semble correct, mais peut-être que vos conditions ne sont pas remplies. – Paulw11

Répondre

0

Il faut distinguer les identifiant par son enchaînements:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    switch segue.identifier { 

    case "segueOTP": 
     let destViewController = segue.destination as! OTPScreen 
     destViewController.Category = Category 
     destViewController.SubCategory = SubCategory 
     destViewController.ShopName = ShopName 
     destViewController.ManagerName = ManagerName 
     destViewController.ManagerMobile = ManagerMobile 
     destViewController.UserName = UserName 
     destViewController.Landline = Landline 
     destViewController.Email = Email 
     destViewController.Website = Website 
     destViewController.City = City 
     destViewController.Address = Address 
     destViewController.Area = Area 
     destViewController.Pincode = Pincode 
     destViewController.StartTime = StartTime 
     destViewController.EndTime = EndTime 
     destViewController.ShopStatus = ShopStatus 
     destViewController.HomeDelivery = HomeConsultancy 
     destViewController.Password = Password 
     destViewController.MarketingRef = txtMarketingRef.text! 
     destViewController.ImgShopName = ShopName 
     destViewController.OtherCategory = Other 
     destViewController.WorkerCount = WorkerCount 
     destViewController.latitude = lblLatitude.text! 
     destViewController.longitude = lblLongitude.text! 

    case "segueError": 
     var _ = segue.destination as! ErrorController 

    default : break 

    } 
} 

Note:

S'il vous plaît respecter la convention de nommage que les noms de variables commencent par une lettre minuscule.