J'ai googling comment obtenir la valeur actuellement sélectionnée à Uipickerview, mais partout, il est mentionné à l'aide de la ligne: 0 et ainsi de suite. p>
J'ai un uipickerview peuplé avec des valeurs de chaîne comme "Un", "Deux", etc. P>
Maintenant, lorsque je sélectionne une valeur pour dire "deux", est là quand même je peux obtenir ce texte. p>
Comme dans uitextview où il est _textview.text p>
6 Réponses :
Chaque uipickerview devrait avoir un délégué.
Et vous pouvez demander à ce délégué pour le titre de la ligne sélectionnée de votre sélecteur via quelque chose comme: p> (Ceci est en supposant em> strud> votre numéro de composant est zéro; votre propre implémentation pourrait être différente). p> Plus documentation sur le" pickerview: Code> "La méthode peut être vue ici . p> p>
Si l'uipickerview n'a qu'un composant (quelque chose de similaire à la section pour UitailView), vous pouvez récupérer l'index sélectionné avec la ligne suivante: (modifier le paramètre 0 si vous avez Plus d'un composant). p> Ceci est l'index de votre éventail de données (MyARRAY), la même chose que vous avez utilisée pour renvoyer les données de la méthode du délégué, comme dans: P> - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return myArray[row];
}
Tout d'abord, ajoutez uipickerviewataSource et uipickerviewelegate dans .h Fichier
Ensuite, Ajoutez la ligne P>
- (IBAction)btnDone:(id)sender
{
NSUInteger num = [[self.myPickerView dataSource] numberOfComponentsInPickerView:self.myPickerView];
NSMutableString *text = [NSMutableString string];
for(NSUInteger i =0;i<num;++i)
{
NSUInteger selectRow = [self.myPickerView selectedRowInComponent:i];
NSString *ww = [[self.myPickerView delegate] pickerView:self.myPickerView titleForRow:selectRow forComponent:i];
[text appendFormat:@"%@",ww];
NSLog(@"%@",text);
}
}
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
// selected value in Uipickerview in Swift
let value=array[row]
println("values:----------\(value)");
}
Comment cela répond à la question? Ce n'est même pas le code obj-c
Si chaque question de l'objectif-c ait une réponse à Swift (dont il n'ya nulle part près de nombreux Q & A), alors la vie de nombreux développeurs Swift serait beaucoup plus facile. Merci @quad!
Merci pour cette version Swift
Vous pouvez utiliser ce code pour obtenir le titre actuel P> self.textview.text = self.pickerView(self.pickerViewOutlet, titleForRow: self.pickerViewOutlet.selectedRow(inComponent: 0), forComponent: 0)
Si vous utilisez un tableau pour initialiser le sélecteur, vous pouvez utiliser: etc. p> p>