detect button click in table view ios xcode for multiple row and section

I want to detect the Button click on table view with multiple row and section. I was able to acheive it on case of single row but I got trouble that it didnt detect correct section. I got trouble to detect which section button has user clicked

Below is the updated code after problem is being solved

  • AutoLayout uitableviewcell in landscape and on iPad calculating height based on portrait iPhone
  • Import aurioTouch Library with Swift
  • present alert view in main view controller (called from subclass)
  • Listing All files and folders from Google Drive in DrEdit
  • UITableViewCell custom editingAccessoryView - not properly dismissed
  • Radial Gradient background in Swift
  •     @property (strong,nonatomic) NSMutableArray* quantityArray;  
        @property (strong,nonatomic) NSMutableArray* rows; 
    
        @synthesize quantityArray,rows;
    
        - (void)viewDidLoad {
            [super viewDidLoad];
            quantityArray = [[NSMutableArray alloc] init];
            [self PluMinusFunction];
        }
    
    
        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        ====================================================
    
            if (addBtnClicked || minusBtnClicked) {
            cell.lblCount.text = [[quantityArray objectAtIndex:indexPath.section-1]objectAtIndex:indexPath.row];
            addBtnClicked = NO;
            minusBtnClicked = NO;
             }
            else
            {
                cell.lblCount.text = [[quantityArray objectAtIndex:indexPath.section-1]objectAtIndex:indexPath.row];
    
            }
    
            cell.btnMinus.tag = indexPath.row;
            cell.btnPlus.tag = indexPath.row;
            cell.lblCount.tag = indexPath.row;
    
            [cell.btnPlus addTarget:self action:@selector(addItem:) forControlEvents:UIControlEventTouchUpInside];
            if ([ cell.lblCount.text integerValue]!=0) {
                [cell.btnMinus addTarget:self action:@selector(deleteItem:) forControlEvents:UIControlEventTouchUpInside];
            }
            return cell;
        }
    }
    
    #pragma mark - Pluys Minus Button
    
    -(void) PluMinusFunction
    {
        for (int j=0; j <[itemArr count ]; j++) {
            rows = [[NSMutableArray alloc] init];
            for (int i=0; i <[ [[itemArr objectAtIndex:j] objectForKey:@"itemList"]count]; i++) {
                [rows insertObject:@"0" atIndex:i];
            }
            [quantityArray insertObject:rows atIndex:j];
        }
        [self sum];
    }
    
    
    #pragma mark - UIButton selector
    
    -(void)addItem:(UIButton*)button
    {
    
        CGPoint touchPoint = [button convertPoint:CGPointZero toView:self.tableView];
        NSIndexPath *clickedButtonIndexPath = [self.tableView indexPathForRowAtPoint:touchPoint];
    
        NSInteger row = clickedButtonIndexPath.row;
        NSInteger section = clickedButtonIndexPath.section;
    
        NSInteger  LabelText =[[[quantityArray objectAtIndex:section-1]objectAtIndex:row]integerValue]+1;
        NSMutableArray *subArray = [quantityArray objectAtIndex:section-1];
        [subArray replaceObjectAtIndex:row withObject: [NSString stringWithFormat:@"%ld",(long)LabelText]];
        [quantityArray replaceObjectAtIndex:section-1 withObject: subArray];
        addBtnClicked = YES;
    
        NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:row inSection:section];
        NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
        [self.tableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];
    
    
    }
    
    
    
    -(void)deleteItem:(UIButton*)button{
    
        CGPoint touchPoint = [button convertPoint:CGPointZero toView:self.tableView];
        NSIndexPath *clickedButtonIndexPath = [self.tableView indexPathForRowAtPoint:touchPoint];
    
        NSInteger row = clickedButtonIndexPath.row;
        NSInteger section = clickedButtonIndexPath.section;
    
        NSInteger  LabelValue =[[[quantityArray objectAtIndex:section-1]objectAtIndex:row]integerValue];
    
        if (LabelValue>=1) {
            NSInteger  LabelText =[[[quantityArray objectAtIndex:section-1]objectAtIndex:row]integerValue]-1;
            NSMutableArray *subArray = [quantityArray objectAtIndex:section-1];
            [subArray replaceObjectAtIndex:row withObject: [NSString stringWithFormat:@"%ld",(long)LabelText]];
    
            [quantityArray replaceObjectAtIndex:section-1 withObject: subArray];
            addBtnClicked = YES;
    
            NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:row inSection:section];
            NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
            [self.tableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];
        }
    
    
    }
    

    I want to acheive as image below

    enter image description here

    below link give solution to my problem too

    Detecting which UIButton was pressed in a UITableView

    2 Solutions Collect From Internet About “detect button click in table view ios xcode for multiple row and section”

    Objective-C

    -(void)addItem:(UIButton*) sender
    {
    
    CGPoint touchPoint = [sender convertPoint:CGPointZero toView:mainTable]; // maintable --> replace your tableview name
    NSIndexPath *clickedButtonIndexPath = [mainTable indexPathForRowAtPoint:touchPoint];
    
     NSLog(@"index path.section ==%ld",(long)clickedButtonIndexPath.section);
    
     NSLog(@"index path.row ==%ld",(long)clickedButtonIndexPath.row);
    
    
    }
    

    Swift3

     func addItem(sender: UIButton)
    {
        var touchPoint = sender.convert(CGPoint.zero, to: self.maintable)
        // maintable --> replace your tableview name
        var clickedButtonIndexPath = maintable.indexPathForRow(at: touchPoint)
        NSLog("index path.section ==%ld", Int(clickedButtonIndexPath.section))
        NSLog("index path.row ==%ld", Int(clickedButtonIndexPath.row))
    
    
    }
    

    Swift2 and above

    func addItem(sender: UIButton)
     {
    var touchPoint: CGPoint = sender.convertPoint(CGPointZero, toView: mainTable)
        // maintable --> replace your tableview name
    var clickedButtonIndexPath: NSIndexPath = mainTable(forRowAtPoint: touchPoint)
    NSLog("index path.section ==%ld", Int(clickedButtonIndexPath.section))
    NSLog("index path.row ==%ld", Int(clickedButtonIndexPath.row))
    }
    
    Swift 3 
    
    let clickedButtonIndexPath = self.tableView.indexPathForRow(at: touchPoint)
            if(clickedButtonIndexPath != nil)
            {
                NSLog("index path.section ==%ld", Int(clickedButtonIndexPath!.section))
                NSLog("index path.row ==%ld", Int(clickedButtonIndexPath!.row))
               }