一个视图中有多个PickerView?

CC.*_*CC. 21 oop iphone objective-c

我想使用相同的viewController在同一视图中创建2个单独的选择器.但是如何为它们设置单独的委托和数据源?

似乎无法让它工作.它们显示相同的数据.如果您有任何示例代码,将非常感谢.

谢谢.

Mas*_*aro 31

请注意,数据源和委托协议的每个方法都包含一个UIPickerView *参数,例如:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
Run Code Online (Sandbox Code Playgroud)

您需要使用它来区分您的两个实例,如下所示:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{

    if([pickerView isEqual: pickerOne]){
      // return the appropriate number of components, for instance
         return 3;
    }

    if([pickerView isEqual: pickerTwo]){
      // return the appropriate number of components, for instance
         return 4;
    }
}
Run Code Online (Sandbox Code Playgroud)


Jab*_*Jab 15

最直接的方法是使用tagpickerView 的属性.我通常在标题中定义这些以便于阅读.您可以在Interface Builder或代码中设置标记.

#define kPickerOne 0
#define kPickerTwo 1
Run Code Online (Sandbox Code Playgroud)

然后在你的实现文件中......

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{
     if(pickerView.tag == kPickerOne)
     {
          // do something with picker one
     }
     else if(pickerView.tag == kPickerTwo)
     {
          // the other picker
     }
}
Run Code Online (Sandbox Code Playgroud)