2 つの pickerView があり、2 番目の pickerView がロードされた後にユーザーが最初に選択したとき。ただし、ユーザーがこのアクションを再度実行すると、すべてのデータが 2 番目の pickerView に追加されます。ユーザーが最初の pickerView コンテンツを選択したときに、2 番目の pickerView コンテンツをクリアする必要があります。reloadAllComponents() メソッドを使用していますが、機能しません。
私のコード;
var country_array = [String]()
var countryIds_array = [String]()
var city_array = [String]()
var cityIds_array = [String]()
override func viewDidLoad() {
super.viewDidLoad()
getCountry()
}
func getCountry(){
//var hata = false
print("Getting Country List")
let query = PFQuery(className: "cls_ulke")
query.limit = 300
query.order(byDescending: "oncelik")
query.findObjectsInBackground { (objects: [PFObject]?, error) -> Void in
if error == nil {
print("Getted!")
print("Looping------------------>")
if let objects = objects {
for object in objects{
print(object.objectId ?? "BOŞ")
print(object["ulke_adi"])
self.country_array.append(object["ulke_adi"] as! String)
self.countryIds_array.append(object.objectId!)
}
self.pckerview.delegate = self
self.pckerview.dataSource = self
}
print("<-------------------Looped")
}else{
print("HATA")
}
}
}
func getCities(objectID:String){
print("Getting City List")
let query = PFQuery(className: "cls_il")
query.limit = 1000
query.order(byDescending: "oncelik")
query.whereKey("ulke_ID", equalTo: PFObject(withoutDataWithClassName: "cls_ulke", objectId: objectID))
query.findObjectsInBackground { (objects:[PFObject]?, error) in
if error == nil {
print("Getted!")
print("Looping------------------>")
if let objects = objects {
for object in objects {
print(object["il_adi"])
self.city_array.append(object["il_adi"] as! String)
self.cityIds_array.append(object.objectId!)
}
self.pckerview2.reloadAllComponents()
self.pckerview2.delegate = self
self.pckerview2.dataSource = self
}
print("<-------------------Looped")
}else{
print("HATA")
}
}
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
var donecek = 0
if pickerView == pckerview {
donecek = country_array.count
}else if pickerView == pckerview2{
donecek = city_array.count
}
return donecek
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
var donecek = ""
if pickerView == pckerview {
donecek = country_array[row]
}else if pickerView == pckerview2{
donecek = city_array[row]
}
return donecek
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == pckerview {
tfield.text = countryIds_array[row]
getCities(objectID:countryIds_array[row])
}
}