11
votes

Obtenir la valeur actuellement sélectionnée de Uipickerview

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.

J'ai un uipickerview peuplé avec des valeurs de chaîne comme "Un", "Deux", etc.

Maintenant, lorsque je sélectionne une valeur pour dire "deux", est là quand même je peux obtenir ce texte.

Comme dans uitextview où il est _textview.text


0 commentaires

6 Réponses :


22
votes

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: xxx

(Ceci est en supposant votre numéro de composant est zéro; votre propre implémentation pourrait être différente).

Plus documentation sur le" pickerview: Code> "La méthode peut être vue ici .


0 commentaires

4
votes

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: xxx pré>

(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];
}


0 commentaires

5
votes

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);
    }
}


0 commentaires

16
votes
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
    // selected value in Uipickerview in Swift
    let value=array[row]
    println("values:----------\(value)");

}

3 commentaires

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



3
votes

SWIFT 3 strud>

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)


0 commentaires

0
votes

Si vous utilisez un tableau pour initialiser le sélecteur, vous pouvez utiliser: xxx

etc.


0 commentaires