多个UIPickerViews

时间:2011-04-05 00:37:23

标签: iphone ios dataset uipickerview uipicker

我有两难,我有两个UIPickerViews,当两个不同的视图加载时“显示”。我从一个UIPickerView开始,并通过在ViewController中加载数组和所有其他UIPickerView操作来启动并运行。

我认为这就像复制/粘贴新UIPickerView的相同方法一样简单,只是更改变量名称,也在同一UIViewController内。

问题是 - UIPickerView是否在下拉列表中显示相同的数据集?我只是遗漏了一些明显的东西吗?

在下方更新

我为下面的所有四种方法做了这个,现在应用程序在加载“下一个”视图后崩溃了?这看起来不错吗?

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView 

- (NSInteger)thePickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component

- (NSString *)thePickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

- (void)thePickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

1 个答案:

答案 0 :(得分:13)

是的,您必须使用UIPickerView参数来确定WHICH选择器视图实际上是在寻求数据 - 因为您已将两个选择器都设置为相同的数据源。

-(void)numberOfComponentInPickerView:(UIPickerView*)thePickerView {
    if(thePickerView == firstPickerView) {
       // return number of components in first picker    
    } else if(thePickerView == secondPickerView) {    
       // return number of components in second picker    
    } else {
       assert(NO);
    }
}

// repeat for all other delegate / datasource methods