IOS: 使用 tableview,如何从 didSelectRowAtIndexPath 访问数据对象

IOS: With tableview, how to access data object from didSelectRowAtIndexPath

我有一个 Master-Detail table 视图,并希望根据所显示对象的属性将用户带到不同的 Detail VC。

例如,如果一个演员在电影中,我想去电影视图控制器,但如果演员在电视节目中,一个为电视节目优化的视图控制器。

我已将详细信息 VCs 连接到视图控制器,而不是 table 视图,以便使用 didSelectRowAtIndexPath,我可以使用逻辑将用户发送到不同的详细信息 VCs并执行 Segue。

但是,实现逻辑所需的信息在 cellforrowatindexpath 的数据对象中。所以我的问题是如何将此信息传递给 didSelectRow 或者将 segue 的逻辑放在 cellforrowatindexpath 中。

感谢您的任何建议。

这是我当前的代码:

- (void)tableView: (UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath {
    UITableViewCell *theCellClicked = [self.tableView cellForRowAtIndexPath:indexPath];
    NSString *segueName = nil;

    if ([_credit.type  isEqual: @"movie"]) {

            segueName = @"goToMovie";
        }
         else if ([_credit.type isEqual: @"television"]) {
            segueName = @"goToTVShow";
        }

    [self performSegueWithIdentifier: segueName sender: self];

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
    Credit *credit = [self.fetchedResultsController objectAtIndexPath:indexPath];

    }
       cell.textLabel.text = credit.name;

    return cell;
}

您的抓取结果控制器仍将在 didSelectRowAtIndexPath 的范围内。所以你可以:

Credit *credit = [self.fetchedResultsController objectAtIndexPath:indexPath];
if ([credit.type  isEqual: @"movie"]) {
   segueName = @"goToMovie";
}
else if ([credit.type isEqual: @"television"]) {
   segueName = @"goToTVShow";
}