Search code examples
swiftuipickerview

Array data is not visible on picker view


I have array data to show on UIPickerView, but data is not showing on picker view. My code:

@IBOutlet var txt: UITextField!
let PickerView = UIPickerView()
override func viewDidLoad() {
  super.viewDidLoad()
        Json()
        txt.inputView = PickerView
        PickerView.delegate = self
        PickerView.dataSource = self
        // Do any additional setup after loading the view.
    }
   func Json()
    {
      { (response, error) in
            if response != nil
            {

                let Value = response!["data"] as! [[String:Any]]
                for dic in dataDict
                {

                    if let job = dic["Jobs"] as? String
                    {
                        print(job)
                        self.array.append(job)
                        print(self.array)
                    }

                }

            }

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

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return array.count
    }
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        txt.text = array[row]
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return array[row]
    }

Why is this happening, is there any way to fix this?


Solution

  •     txt.inputView = PickerView
        PickerView.delegate = self
        PickerView.dataSource = self
        Json()
    

    please reload picker.reloadAllComponent() in response