ios - Get Selected index of UITableView


Translate

I want to have selected index for UITableView. I have written following code:

NSIndexPath *index = [NSIndexPath indexPathForRow:1 inSection:0];
[tableView scrollToRowAtIndexPath:index 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

This always work for 1st item. I want to have selected index in indexPathForRow.

Please help. Thanks.


All Answers
  • Translate
    NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];
    

  • Translate

    Get current selected row. May be helpful if you have only one section.

    - (NSUInteger)currentSellectedRowIndex
    {
        NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
        if (selectedIndexPath) {
            return selectedIndexPath.row;
        }
        else {
            return NSNotFound;
        }
    }
    

  • Translate

    Use this code

    CGPoint location =[sender locationInView:self.tableView];
    NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:location];
    UITableViewCell *swipedCell  = [self.tableView cellForRowAtIndexPath:swipedIndexPath];
    NSIndexPath *indexPath = [self.tableView indexPathForCell:swipedCell];
    

  • Translate

    In didSelectRowAtIndexPath, set an interface declared NSIndexPath as the indexpath returned. Then you can scroll to that variable. If you need help, comment and I can give some sample code.


  • Translate

    Swift 4.2

    let selectedIndexPath = tableView.indexPathForSelectedRow
    

    which is an optional return value.