两个PickerViews具有不同的值

时间:2011-11-23 10:24:54

标签: iphone ios cocoa-touch ios4

这是我在一个视图控制器中的两个选择器视图的代码。然而它不适合我。

#pragma mark UIPickerViewDelegate methods
    //PickerViewController.m
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
        return 1;
    }

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

        switch ([thePickerView tag]) {
            case 1: //purpose picker        
                return [m_arrPurpose count];            
            case 2:  //second picker
                return [m_arrSweep count];
            default:
                return 0;
                break;
        } 
    }

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

        switch ([thePickerView tag]) {
            case 1: //purpose picker
            {
                //cost.text = @"Test";
                Purpose *prp = [m_arrPurpose objectAtIndex:row];
                return [prp m_purposeName];     
            }       
            case 2:  //second picker
            {
                OpenActivity *opn = [m_arrSweep objectAtIndex:row];
                return [opn m_ahhaName];
            }
            default:
                return @"";
                break;
        }
}

任何人都可以帮我解决这个问题.. 感谢

2 个答案:

答案 0 :(得分:0)

听起来你的标签设置不正确,或者你没有连接两个选择器的数据源和委托方法。

在numberOfRowsInComponent和titleForRow:方法中添加一些NSLog语句。

在日志中包含选择器视图对象和选择器视图的标记,例如

NSLog(@"Rows in component for %@, tag %d",thePickerView,[thePickerView tag]);

titleForRow中有不同的文字。

您应该看到两个不同的对象 - 如果没有,您的委托和数据源都没有连接。你应该看到标签1和2 - 如果没有,你的标签设置不正确。

答案 1 :(得分:-1)

有了这个问题我的代码没有任何问题只是我忘了在XIB中将tag的值设置为1和2。