自定义表格单元格的indexPath未定义,目标c

时间:2015-05-12 04:16:07

标签: objective-c custom-cell didselectrowatindexpath

我创建了一个自定义单元格调用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;
    }
}

我怎样才能知道哪一行被点击了。因为它总是返回第一个索引的对象。

任何人都可以帮助我吗?我赶紧去做我的项目。感谢。

1 个答案:

答案 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];
   }
 }