数据传递到UITableViewCell内部的UIPickerView

时间:2012-10-23 14:55:01

标签: iphone objective-c ios xcode

我有UITableView并且每个单元格内都有一个选择器视图。用户可以单独更改每个选择器的值。

我需要知道哪个单元格的pickerView已更改。例如,当用户移动选择器时,我将知道,这是单元格3.

有没有办法做到这一点?没有必要获得即时更改的值。我们可以将它存储在数组上,而不是在点击Go按钮时发送,这与tableview无关。

2 个答案:

答案 0 :(得分:0)

我建议存储一系列指向您的选择器视图的指针。因此,数组的索引0将指向表行0的选择器视图,等等。然后,确保您的视图控制器是所有选取器视图的委托。实现pickerView:didSelectRow:inComponent:协议声明的UIPickerViewDelegate方法。该方法有一个UIPickerView实例作为参数:这是值被更改的那个。要获取该选择器视图的行,您可以使用indexOfObject:方法发送数组。

答案 1 :(得分:0)

创建UITableViewCell的子类。该子类应该引用您想要更新的内容,然后它可以简单地创建(或IBOutlet链接)到选择器并成为选择器的委托。

所以Cell应该有:

- (void) passStuff:(NSMutableDictionary *)datamodel key:(NSString *)key values:(NSArray *)values {
    _privateWeakRefDataModel = datamodel;
    _privateCopyKey = key;
    _privateValues = values;
    [picker reloadData];
}

#pragma mark - Picker Delegate Code here

这样,单元格将直接处理数据模型的更新。保持您的代码更清洁。