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!!
objectiv-ce uipickerview nsmutablearray didview
2 Commenti
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/2012Ciao, complimenti per il tutorial.<br />Volevo chiederti se è possibile prendere i valori dell'array dal testo di una textview?
18/11/2012