Zamiast tego naprawdę powinieneś używać tej metody:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Wersja Swift:
let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)
To da ci podstawę w indexPath
oparciu o położenie przycisku, który został naciśnięty. Wtedy po prostu zadzwonisz, cellForRowAtIndexPath
jeśli potrzebujesz komórki lub indexPath.row
jeśli potrzebujesz numeru wiersza.
Jeśli masz paranoję, możesz sprawdzić if (indexPath) ...
przed użyciem, na wypadek gdyby indexPath
nie znaleziono tego punktu w widoku tabeli.
Wszystkie inne odpowiedzi prawdopodobnie się zepsują, jeśli Apple zdecyduje się zmienić strukturę widoku.