dwóch przypadkach:
1) Segue
związane z viewController
Wezwania segue
z metodą didSelectRowAtIndexPath
przechodzą indexPath
jak sender
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"Action" sender:indexPath];
}
Następnie można dostać indexPath jako nadawcy w prepareForSegue:sender:
metody
- (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];
}
}
2) Segue połączony z komórki
Nie potrzeba wdrożenia didSelectRowAtIndexPath
sposób i performSegueWithIdentifier:
.you można bezpośrednio uzyskać sender
jak UITableviewCell
w prepareForSegue:sender:
metody.
- (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];
}
}
Pls sprawdzić self.tbl! = Nil – Matz
nie masz powiązanie zmiennej tbl z tableview w storyboard. – Rajesh