J'utilise SwiftyPickerPopover pour afficher le contrôle contextuel afin que l'utilisateur puisse sélectionner une valeur. Auparavant, à un autre endroit dans l'application que je l'ai mis en œuvre comme:Remplir les choix SwiftyPickerPopover avec le tableau
let displayStringFor:((String?)->String?)? = { string in
if let s = string {
switch(s){
case "Lhe”:
return "Lh”
case "Khi":
return "Khi”
case "Isb”:
return "Isb"
case "Guj":
return "Guj"
default:
return s
}
}
return nil
}
let p = StringPickerPopover(title: "Select City", choices: ["Lhe”,”Khi”,”Isb”,”Guj”])
.setDisplayStringFor(displayStringFor)
.setDoneButton(
action: { popover, selectedRow, selectedString in
self.cityButton.setTitle(selectedString,for: .normal)
if selectedRow == 0 {
self.cityImage.image = UIImage(named: "Lhe")
} else if selectedRow == 1 {
self.cityImage.image = UIImage(named: "Khi")
} else if selectedRow == 2 {
self.cityImage.image = UIImage(named: "Isb")
} else if selectedRow == 3 {
self.cityImage.image = UIImage(named: "Guj")
}
})
.setCancelButton(action: {_, _, _ in
})
p.appear(originView: sender as! UIView, baseViewController: self)
que vous pouvez voir les valeurs sont ici codées en dur. Maintenant, j'ai une API qui me donne toutes les villes. J'ai donc créé var mainCitiesArray = [City]()
et appelé l'API et analysé les données.
Dans mainCitiesArray
J'ai maintenant toutes les villes que je veux afficher dans cette popup. Comment puis je faire ça?