2

这可能需要两秒钟才能回答,但我的搜索技巧在这个问题上并没有让我走得太远。我正在执行 segue,但我不确定如何获取目的地的 id。这是我在 tableview 控制器上的代码。

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath: NSIndexPath *)indexPath{
    NSLog(@"reaching accessoryButtonTappedForRowWithIndexPath:");
    [self performSegueWithIdentifier:@"leads_calls_to_detail" sender:[[self.leads_calls objectAtIndex:indexPath.row] objectForKey:@"ID"]];
}

我必须在目标视图控制器上创建什么才能获取我试图传递的 id,或者我执行 segue 的方式与我正在尝试的方式不兼容?

4

1 回答 1

7

您应该只将值传递到destinationViewController内部prepareForSegue:self作为发件人传递..尝试使用类似的东西:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"leads_calls_to_detail"])
    {
       YourViewController *controller=(YourViewController *)segue.destinationViewController;
       NSIndexPath *path = [self.tableView indexPathForSelectedRow];
      //Or rather just save the indexPath in a property in your currentViewController when you get the accessoryButtonTappedForRowAtIndexPath callback, and use it here
       controller.yourPropertyToSet = [self.leads_calls objectAtIndex:path.row];
    }
}

而且根据 Rob Mayoff 的说法,您可以使用以下内容获取附件被点击的行的索引路径:

NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];//where sender is the sender passed in from prepareForSegue:

如何在 tableView 中找到点击的附件按钮的 indexPath

于 2013-06-11T17:19:06.923 回答