2017-07-06 3 views
2

データでピッカービューをロードしようとしましたが、データを読み込むことができず、下の図のように空のピッカービューのみが表示されています。私は長い間試していましたが、 ? viewDidLoad
enter image description here私のピッカービューの配列データがロードされていませんか?

var firstName : String = "" 
    var lastName : String = "" 
    var mobileNumber : Int = 0 
    var email : String = "" 
    var defaultValue = 1 
    let url = "http://www.json-generator.com/api/json/get/bPmyumGWeW?indent=2" 
    var dateofbirth : String = "" 
    var Gender : String = "" 
    var genderArray = [String]() 

     override func viewDidLoad() { 
     super.viewDidLoad() 
     let picker = UIPickerView() 
     picker.isHidden = true 
     picker.delegate = self 
     DateofBirthTextfield.delegate = self 
     selectGenderTextField.inputView = picker 
     MyaccountJsonWithURL() 
     genderArray = ["Male","Female"] 

    } 

    func MyaccountJsonWithURL() { 
     let url = NSURL(string: self.url) 
     URLSession.shared.dataTask(with: (url as URL?)!, completionHandler: {(data, response, error) -> Void in 
      if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSDictionary { 
       // print(jsonObj!.value(forKey: "Detail")) 
       if let profileArray = jsonObj!.value(forKey: "profile") as? NSArray { 
        for array in profileArray { 
         if let profileDict = array as? NSDictionary { 
          if let firstName = profileDict.value(forKey: "first name"){ 
           self.firstName.append(firstName as! String) 
          } 
          if let lastName = profileDict.value(forKey: "last name"){ 
           self.lastName.append(lastName as! String) 
          } 
          self.mobileNumber = profileDict.value(forKey: "mobile") as! Int 
          print(self.mobileNumber) 
          if let emailId = profileDict.value(forKey: "email"){ 
           self.email.append(emailId as! String) 
          } 
          self.dateofbirth = profileDict.value(forKey: "dob") as! String 
          if let gender = profileDict.value(forKey: "gender"){ 
           self.Gender.append(gender as! String) 
          } 
         } 
        } 
       } 
       OperationQueue.main.addOperation({ 
        self.FirstNameTextfield.text = self.firstName 
        self.LastNameTextfield.text = self.lastName 
        self.MobileNumberTextfield.text = String(describing: self.mobileNumber) 
        self.EmailIdTextfield.text = self.email 
        self.DateofBirthTextfield.text = String(describing: self.dateofbirth) 
        self.selectGenderTextField.text = self.Gender 
       }) 
      } 
     }).resume() 
    } 

func numberOfComponents(in pickerView: UIPickerView) -> Int { 
     return 1 
    } 

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return genderArray.count 
    } 

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     return genderArray[row] 
    } 

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     selectGenderTextField.text = genderArray[row] 
     self.view.endEditing(false) 
    } 

答えて

0

あなたはhiddenとしてピッカーを設定します。 =それは

+0

なしのiはグレー –

+0

おかげで私の仲間他のすべてにチェックこの1つは –

+0

を逃してしまったことを図に示した表示真picker.isHidden = falseを設定します@ Thiruあなたはそれを解決しましたか?それがうまくいけば答えを受け入れてください:) – Bali

1

タイプ& picker.hiddenに置き換える表示する

picker.hidden = false 
関連する問題