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>