我有自定义单元格的tableView,它有一个segmentControl。我需要为每个单元格捕获状态她的segmentControl。我的头已经旋转了,我找不到错误。你能救我吗?
小时。 file segmentControl:
@property (nonatomic) NSIndexPath *button_indexPath;
米。文件单元格:
- (IBAction)changed1:(id)sender{
NSInteger i = self.segmentMeating.button_indexPath.row; }
米。带有表格视图的文件:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
cell.segmentMeating.button_indexPath = indexPath;
[cell.segmentMeating addTarget:nil action:@selector(changed1:) forControlEvents:UIControlEventValueChanged];
答案 0 :(得分:0)
在这种情况下,您需要使用协议和委托方法。 在您的cell.m中创建一个委托名称:
- (void)tableView:(UITableView *)tableView segmentedControl:(UISegmentedControl *)segmentControl changedValueAtIndex:(NSIndexPath *)indexPath;
然后在你的cell.m
中调用它- (IBAction)changed1:(id)sender
然后在tableview.m中实现它,你得到修改值,因为你在param中有segmentControl。
答案 1 :(得分:0)
您所需要的只是通过NSIndexPath
事件触发UISegmentedControl
函数的changed1
的{{1}},然后您就会确切知道该行动的起源。没有必要像你一样将indexPath存储为变量。
valueChanged
答案 2 :(得分:0)
在你的m。在包含表格视图的文件中,segmentMeating
目标不应该是tableView
(自我),而是cell
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
cell.segmentMeating.button_indexPath = indexPath;
[cell.segmentMeating addTarget:cell action:@selector(changed1:) forControlEvents:UIControlEventValueChanged];
因为,您的目标操作位于Cell
class.T