【问题标题】:iPhone: Multiple UIPickerViewsiPhone:多个 UIPickerViews
【发布时间】:2011-04-30 09:03:12
【问题描述】:

我在 iPhone 应用程序中使用多个 UIPickerView。我的问题是,如何处理多个UIPickerView Handle Events?

另外,我想将所选值放在不同UIPickerViewsUITextField 中。

【问题讨论】:

    标签: objective-c uitextfield uipickerview


    【解决方案1】:

    在每个委托中,您都引用了触发委托的UIPickerView。例如:

    -(void)numberOfComponentInPickerView:(UIPickerView*)thePickerView

    您有 thePickerView 变量指向响应此操作的控件,您现在需要做的就是区分您的UIPickerViews,如下所示:

     if (thePickerView == firstPickerView)
    

    或者使用 Tag 属性

     if (thePickerView.tag == 1)
    

    我会选择标签解决方案;比较int 更快。

    如何获得选中的值:

    至于UIPickerView 的选定值,您可以使用委托来做到这一点:

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

    您需要在这里使用相同的技术;区分您的 UIPickerView 并获取该数据源的选定行,然后您就完成了

     MyTextField.text = [theSelectedListArray objectAtIndex:row];
    

    【讨论】:

      【解决方案2】:
      - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
          NSInteger counter;
          if(pickerView==p1)
          {
              counter=[name count];
          }
          else
          {
              counter=[name2 count];
          }
          return counter;
      
      }
      - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
          if(pickerView==p1)
              return [name objectAtIndex:row];//name is NsMutable Array
          else
              return [name2 objectAtIndex:row];//name2 is NsMutable Array
      
      }
      

      【讨论】:

        猜你喜欢
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多