Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用多个UIPicker一个屏幕_Iphone_Xcode_Ipad_Ios4_Xcode4 - Fatal编程技术网

Iphone 使用多个UIPicker一个屏幕

Iphone 使用多个UIPicker一个屏幕,iphone,xcode,ipad,ios4,xcode4,Iphone,Xcode,Ipad,Ios4,Xcode4,我想建立一个应用程序,将有两个不同的UIPicker视图上。我设置了不同的变量,但是当我运行应用程序时,我让两个UIPicker都有相同的信息。使用两个不同阵列的不同UIPicker的正确方法是什么 有什么建议吗?只需给每个UIPicker一个“标签” 然后在数据源方法中添加: - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { NSInteger * numberOfComponent

我想建立一个应用程序,将有两个不同的UIPicker视图上。我设置了不同的变量,但是当我运行应用程序时,我让两个UIPicker都有相同的信息。使用两个不同阵列的不同UIPicker的正确方法是什么


有什么建议吗?

只需给每个UIPicker一个“标签”

然后在数据源方法中添加:

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

    NSInteger * numberOfComponents;

    if(picker.tag==0){
          numberOfComponents = 3;
    }else{
          numberOfComponents = 4;
    }

   return numberOfComponents;
}

您的类中必须有2个uipicker对象作为实例变量

在uipicker数据源和委托方法中,您可以检查调用这些方法的选择器,然后相应地将数据加载到其中


但是,如果您没有uipicker的IBOutlet(如果您在xib中创建了它们),那么只需使用标记来标识选择器并适当地加载数据。

它们都设置为使用相同的委托吗?您需要单独的委托才能用不同的数据填充单独的控件。@Gregory Hoerner不,您可以同时使用一个委托。只需确保检查哪一个调用了委托方法(使用if语句)。@WTP,我很抱歉,我指的是数据源。不过,两个都可以有一个数据源。再次确保使用if语句检查哪个调用了数据源方法。;)虽然您可以重用数据源,但我个人的经验是,使用单独的实例(虽然占用内存较多)有助于防止此类问题。我已经在必要时创建了一个通用数组数据源,并用数组实例化了该数据源的一个新实例,然后将其分配给相应的控件。-(NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerViewPort;{return 1;}我应该将我的-(NSInteger)组件编号放入选择器:…,(void)pickerview:(UIPickerView)…,-(NSInteger)pickerview:(UIPickerView*)…和-(NSString*)pickerview:(UIPickerView*)。。。。。
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {

    NSInteger * numberOfComponents;

    if(picker.tag==0){
          numberOfComponents = 3;
    }else{
          numberOfComponents = 4;
    }

   return numberOfComponents;
}