我有一个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值传递给选择器。感谢。
答案 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];
}