我创建了一个自定义单元格调用PendingDoctorTableViewCell,并在PendingDoctorTableView中使用。一切都是工作找到,我使用
添加了披露指标[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
它能够执行segue" ShowPendingDoctor"。
但是当我使用prepareForSegue时,indexPath是未定义的。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"ShowPendingDoctor"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
ActionForPendingDoctorViewController *destViewController = segue.destinationViewController;
destViewController.myObjects = [myObject objectAtIndex:indexPath.row];
// Hide bottom tab bar in the detail view
// destViewController.hidesBottomBarWhenPushed = YES;
}
}
我怎样才能知道哪一行被点击了。因为它总是返回第一个索引的对象。
任何人都可以帮助我吗?我赶紧去做我的项目。感谢。
答案 0 :(得分:0)
声明NSIndexPath的变量以保存当前选定的indexPath
NSIndexPath *selectedIndexPath;
使用Tableview委托识别所选行并以编程方式执行segue
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:YOUR_SEGUE_IDENTIFIER sender:self];
}
通过prepareForSegue
将您的对象传递给下一个ViewController-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:YOUR_SEGUE_IDENTIFIER])
{
ActionForPendingDoctorViewController *destViewController = segue.destinationViewController;
destViewController.myObjects = [myObject objectAtIndex:selectedIndexPath.row];
}
}