两个值不同的pickerview



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

#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;
        }
}
有谁能帮我一下吗?由于

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

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

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

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

和titleForRow中的另一个文本。

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

有了这个问题,我的代码没有什么问题,只是我忘了在XIB中设置标签的值为1和2。

最新更新