Two cases:
-
Segueconnected from theviewControllerCall
seguefrom yourdidSelectRowAtIndexPathmethod, passindexPathassender-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self performSegueWithIdentifier:@"Action" sender:indexPath]; }Then you can get indexPath as sender in
prepareForSegue:sender:method- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"Action"]) { NSIndexPath *indexPath = (NSIndexPath *)sender; SecondViewController *destViewController = segue.destinationViewController; destViewController.getString = [getArray objectAtIndex:indexPath.row]; } } -
segue connected from the cell
No need to implement
didSelectRowAtIndexPathmethod andperformSegueWithIdentifier:.You can directly getsenderasUITableviewCellinprepareForSegue:sender:method.- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"Action"]) { NSIndexPath *indexPath = [self.tableView indexPathForCell:sender]; SecondViewController *destViewController = segue.destinationViewController; destViewController.getString = [getArray objectAtIndex:indexPath.row]; } }