我有UITableView
并且每个单元格内都有一个选择器视图。用户可以单独更改每个选择器的值。
我需要知道哪个单元格的pickerView已更改。例如,当用户移动选择器时,我将知道,这是单元格3.
有没有办法做到这一点?没有必要获得即时更改的值。我们可以将它存储在数组上,而不是在点击Go按钮时发送,这与tableview无关。
答案 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
这样,单元格将直接处理数据模型的更新。保持您的代码更清洁。