0

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

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

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

4

2 回答 2

0

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

于 2012-10-23T15:11:45.027 回答
0

创建 a 的子类UITableViewCell。该子类应该获得对您想要更新的任何内容的引用,然后它可以简单地创建(或 IBOutlet 链接)到选取器并成为选取器的代表。

所以细胞应该有:

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

#pragma mark - Picker Delegate Code here

这样,单元格将直接处理更新您的数据模型。让你的代码更干净。

于 2012-10-23T15:12:08.110 回答