2012-06-25 14 views
7

Próbuję zresetować UIPickerView po kliknięciu przycisku. Mój identyfikator pickerview jest tworzony w czasie wykonywania, mam już ustawione delegaty. Po googlowania znalazłemJak zresetować UIPickerView do indeksu: 0, iPhone

[pickerView reloadAllComponents]; 

Ale to sprawia, że ​​moja aplikacja krach każdym dotrze tutaj.

Obiektem o indeksie 0 jest "Wybierz z listy", a następnie elementy. Po kliknięciu przycisku przesyłania chcę, aby "Wybierz z listy" pozostało u góry etykiety (wybrany indeks: 0).

Oto mój kod

ViewDidload 

pickerView = [[UIPickerView alloc] init]; 
    pickerView.delegate = self; 
    pickerView.dataSource = self; 

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


// Total rows in our component. 
    -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 
     return [nameArray count]; 
    } 

// Display each row's data. 
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 
    return [nameArray objectAtIndex: row]; 
    } 

// Do something with the selected row. 

    -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ 
     dlbl.hidden=YES; 
     NSLog(@"You selected this: %@", [nameArray objectAtIndex: row]); 
     [btnSelectDesigner setTitle:[nameArray objectAtIndex: row] forState:UIControlStateNormal]; 

    } 

i na kliknięcia przycisku:

-(IBAction)btnSubmitClicked:(id)sender{ 
[pickerView reloadAllComponents]; 
} 

Każdy pomysł co robię źle?

Dzięki

+3

Niektóre kod pomogłoby debugowania lepiej. –

Odpowiedz

25
[picker reloadAllComponents]; 
[picker selectRow:0 inComponent:0 animated:YES]; 
5
//use this line for going at the top of the label index 0: 

[picker selectRow:0 inComponent:0 animated:YES]; 
+0

Kliknij przycisk? daje mi crash – FirstTimer

+1

Czy przeznaczyłeś swoją tablicę? po raz pierwszy działa dobrze ... możesz pokazać swój dziennik awarii tutaj ... co się dokładnie dzieje ... – Abhishek

3

wersja Swift:

picker.selectRow(0, inComponent: 0, animated: true)