使用UITegmentedControl在UITableViewCell内传递数据

时间:2013-12-11 18:21:08

标签: ios uitableview uisegmentedcontrol

我有一个UITableView,每个单元格中都有一个UISegmentedControl。当UISegmentedControl的值发生更改时,我想更改MYSQL数据库中的值。 (这是公共/私人转换)

我在我的cellForRowAtIndexPath

中有这个
[cell.pubPrivSegmentedControl addTarget:self action:@selector(switchValue:) forControlEvents:UIControlEventValueChanged];

然后这是我的方法

-(void)switchValue:(id)sender
{
    UISegmentedControl *sc = (UISegmentedControl *)sender;
    NSString *status = [sc selectedSegmentIndex] ? @"Private" : @"Public";
    NSLog(@"status is %@", status);
    //call method to change value in database using indexPath.row of tapped UISC
}

我的问题是如何在分割控制器时将indexPath.row值传递给选择器。感谢。

1 个答案:

答案 0 :(得分:1)

您可以这样添加目标:

[cell.pubPrivSegmentedControl addTarget:self action:@selector(switchValue:event:) forControlEvents:UIControlEventValueChanged];

并实施方法:

- (void)switchValue:(id)sender event:(id)event {


    NSSet *touches = [event allTouches];
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView: tableView];
    NSIndexPath *indexPath = [tableView indexPathForRowAtPoint: currentTouchPosition];
}