Objective-C(发件人)

时间:2015-05-13 14:37:10

标签: ios objective-c xcode

我有自定义单元格的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];

3 个答案:

答案 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