J'ai un viewController
qui a un tas d'entrées sur elle. Certains d'entre eux sont du texte normal, mais certains nécessitent une entrée d'un sélecteur. J'ai décidé de déplacer la mise en œuvre de chaque PickerDelegate
et PickerDataSource
dans un fichier séparé pour garder les choses un peu plus propre. Les données apparaissent mais sur le sélecteur de sélection je ne sais pas comment déclencher l'événement dans mon viewController. Actuellement, il se déclenche uniquement dans la classe PickerDelete.Comment faire pour retourner la valeur sélectionnée dans UIPickerDelegate lors de la création par programme
Certaines informations de mise en page de base est
class MyClass: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let jobTypePickerValues = ["value1", "value2"]
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return jobTypePickerValues.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return jobTypePickerValues[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
//println("I want this in the view controller that set up the picker")
}
Dans mon contrôleur de vue qui montre le sélecteur je donne les résultats suivants
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
myClassSource = MyClass()
pickerView = UIPickerView()
pickerView.dataSource = myClassSource
pickerView.delegate = myClassSource
// set the input view of the job type to be a picker view
textInput.inputView = pickerView
textInput.text = jobTypePickerValues[0]
}
vous pouvez rendre votre délégué MyClass personnalisé qui peut être appelé à votre avis classe contrôleur .. cela va résoudre le problème –