Usare UIPickerView in iPhone e iPad

Mattepuffo's logo
Usare UIPickerView in iPhone e iPad

Usare UIPickerView in iPhone e iPad

L'oggetto UIPickerView viene usato per rappresentare dei valori tra i quali scegliere; un pò come i menu a tendina nei siti web per intenderci.

Solo che non basta trascinare un oggetto nello Storyboard o nel .xib per usarlo.

Siamo noi che dobbiamo impostarlo.

Prima di tutto trasciniamo un componente UIPickerView nello Storyboard.

Impostiamo tutte le proprietà che ci interessano (colore, carattere, ecc....) e infine agganciamolo al controller attraverso Interface Builder.

Questo sarà l'header del controller:

#import <UIKit/UIKit.h>

@interface ControllerAziendaReg : UIViewController {
    NSMutableArray *arrForma;
}

@property (retain, nonatomic) IBOutlet UIPickerView *pickerForma;

@end

L'oggetto NSMutableArray ci servrà per riempire il picker.

Una volta agganciato al file header, nello Storyboard dobbiamo anche impostare il Delegate e Data source; per farlo andiamo sempre nell'inspector connection e trasciniamo le prime due voci sul controller.

In alternativa possiamo anche fare così nel file di implementazione (nel metodo viewDidLoad):

[pickerForma setDelegate:self];
[pickerForma setDataSource:self];

A voi la scelta.

A questo punto dobbiamo modificare il file di implementazione.

Nello specifico modifichiamo il metodo viewDidLoad e aggiungiamo alcuni metodi riguardanti il picker:

- (void)viewDidLoad
{
    [super viewDidLoad];
   
    arrForma = [[NSMutableArray alloc] init];
    [arrForma addObject:@"A"];
    [arrForma addObject:@"B"];
    [arrForma addObject:@"C."];
    [arrForma addObject:@"D"];
    [arrForma addObject:@"E"];
}

........

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    return [arrForma objectAtIndex:row];
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return [arrForma count];
}

@end

Vi ho messo solo le parti da modificare o aggiungere.

Nel metodo viewDidLoad impostiamo i valori dell'array.

Sotto abbiamo tre metodi per l'oggetto UIPickerView.

Nel primo impostiamo il tito di ogni riga.

Nell'ultimo impostiamo il numero di valori da metterci; il numero lo prende contanto gli oggetto che si trovano nell'array.

 

Mi accorgo che così spiegato potrebbe non risultare facile; il fatto è che Xcode è molto grafico e bisogna prima capire come collegare i camponente dello Storyboard o del file .xib al controller.

Ma una volta capito questo meccanismo diventa tutto più facile, quindi la parte puramente grafica ve la lascio come studio!!


Condividi

2 Commenti

  • fermat

    ciao!<br />bhe penso di si.<br />la textview penso che ti restituisca una NSString.<br />quindi devi fare da NSString a NSArray.<br />prova a guardare qua:<br />http://stackoverflow.com/questions/6579728/nsstring-to-nsarray<br /><br />fammi sapere!

    19/11/2012
  • Angelo

    Ciao, complimenti per il tutorial.<br />Volevo chiederti se è possibile prendere i valori dell'array dal testo di una textview?

    18/11/2012

Commentami!