Вместо этого вам действительно стоит использовать этот метод:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Быстрая версия:
let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)
Это даст вам indexPathоснование на позиции нажатой кнопки. Тогда вы просто позвоните, cellForRowAtIndexPathесли вам нужна ячейка или indexPath.rowномер строки.
Если вы параноик, вы можете проверить, if (indexPath) ...прежде чем использовать его, на случай, если indexPathдля этой точки в представлении таблицы не будет найдено.
Все остальные ответы, скорее всего, сломаются, если Apple решит изменить структуру представления.