2010-12-11 4 views

Antwort

4

Es gibt zwei Ansätze dazu.

a) Machen Sie zuerst den View-Controller zum Delegaten und zur Datenquelle der beiden Picker. Dann in der Implementierung des View-Controller etwas tun, wie folgt aus:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return (pickerView == picker1 ? 2 : 3); 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    NSArray *values = (pickerView == picker1 ? values1 : values2); 
    return [values count]; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    NSArray *values = (pickerView == picker1 ? values1 : values2); 
    return [values objectAtIndex: row]; 
} 

Beachten Sie, dass die picker Parameter auf eine Instanz Variable zeigt auf einen Ihrer Picker Ansichten und entscheiden, „on the fly“ zu vergleichen, die für jeden zu Rückgabewerte die Pickeransichten.

b) Ordnen Sie den einzelnen Picker-Ansichten unterschiedliche Datenquellen und Delegaten zu (dies können Objekte sein, die UIPickerViewDelegate- und UIPickerViewDataSource-Protokolle implementieren, nicht unbedingt der View-Controller).

Verwandte Themen