Due casi:
1) Segue
collegati dal viewController
chiamata segue
dal tuo metodo didSelectRowAtIndexPath
, passa indexPath
come sender
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"Action" sender:indexPath];
}
Poi si può ottenere indexPath come mittente nella prepareForSegue:sender:
metodo
- (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 collegato dalla cella
necessario implementare didSelectRowAtIndexPath
metodo e performSegueWithIdentifier:
.You può direttamente ottenere sender
come UITableviewCell
in prepareForSegue:sender:
metodo.
- (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];
}
}
fonte
2014-10-09 12:53:58
Pls verificare self.tbl! = Nil – Matz
Non hai ha reso la connessione di tbl variabile a tableview in storyboard. – Rajesh