UIPickerView直到滚动才重新加载

时间:2012-01-17 22:11:27

标签: objective-c xcode uipickerview uisegmentedcontrol

使用分段控件我尝试使用新的数据阵列重新加载2个UIPickerViews。

我的问题是新的数组不会显示,直到我在选择器上向上或向下滚动(旧数据一旦离开视图就会消失)。我尝试过使用reloadAllComponents方法没有运气。这是代码的样子:

//Segment Control
-(IBAction)unitType:(id)sender {
    if([sender selectedSegmentIndex]==0){
        NSLog(@"unitType change 1");
        NSLog(@"before values = %@",units);
        [units removeAllObjects];
        [units addObject:@"in"];
        //etc.
        [self.inputUnits reloadAllComponents];
        NSLog(@"current values = %@",units);
    }else {
        NSLog(@"unitType change 2");
        NSLog(@"before values = %@",units);
        [units removeAllObjects];
        [units addObject:@"in^3"];
        //etc.
        [self.inputUnits reloadAllComponents];
        NSLog(@"current values = %@",units);
    }
}

IB有两个UIPickerViews连接到文件的所有者,代表和数据源。

1 个答案:

答案 0 :(得分:5)

您尚未将UIPickerViewinputUnits财产联系起来。因此,您对-reloadAllComponents的调用将被发送到nil,并且当pickerView想要显示新内容时(滚动时会执行此操作),事情才会更新。