Bạn thực sự nên sử dụng phương pháp này thay thế:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Phiên bản Swift:
let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)
Điều đó sẽ cung cấp cho bạn indexPathdựa trên vị trí của nút đã được nhấn. Sau đó, bạn chỉ cần gọi cellForRowAtIndexPathnếu bạn cần ô hoặc indexPath.rownếu bạn cần số hàng.
Nếu hoang tưởng, bạn có thể kiểm tra if (indexPath) ...trước khi sử dụng nó đề phòng trường hợp indexPathkhông tìm thấy điểm đó trên chế độ xem bảng.
Tất cả các câu trả lời khác có khả năng bị phá vỡ nếu Apple quyết định thay đổi cấu trúc chế độ xem.