Hai trường hợp:
1) Segue
kết nối từ viewController
Gọi segue
từ phương pháp didSelectRowAtIndexPath
của bạn, vượt qua indexPath
như sender
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"Action" sender:indexPath];
}
Sau đó, bạn có thể nhận được indexPath như người gửi trong prepareForSegue:sender:
phương pháp
- (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 kết nối từ các tế bào
Không cần phải thực hiện didSelectRowAtIndexPath
phương pháp và performSegueWithIdentifier:
.Bạn có thể trực tiếp lấy sender
như UITableviewCell
trong prepareForSegue:sender:
phương pháp.
- (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];
}
}
Nguồn
2014-10-09 12:53:58
Xin vui lòng kiểm tra self.tbl! = Nil – Matz
Bạn có không thực hiện kết nối của biến tbl để tableview vào storyboard. – Rajesh