Ios 如何根据表格视图单元格的详细信息文本标签将segue设置为与表格视图控制器不同的视图控制器?

Ios 如何根据表格视图单元格的详细信息文本标签将segue设置为与表格视图控制器不同的视图控制器?,ios,objective-c,xcode,Ios,Objective C,Xcode,我刚刚开始学习objective-c和编程,我真的被困在这个问题上了。我正在使用情节串连板创建一个应用程序,它可以保存不同类型游戏的分数。我有一个主视图控制器,它是一个表视图,它有带有细节标签的原型单元。有一个AddKeeperViewController,允许用户输入玩家姓名和游戏类型。然后,游戏类型将用作原型单元的详细信息标签 然后,我希望根据细节文本标签的不同,将每个单元格推送到不同的视图控制器。目前我只有2种游戏类型,我知道我需要在tableViewDidSelectRowatineXp

我刚刚开始学习objective-c和编程,我真的被困在这个问题上了。我正在使用情节串连板创建一个应用程序,它可以保存不同类型游戏的分数。我有一个主视图控制器,它是一个表视图,它有带有细节标签的原型单元。有一个
AddKeeperViewController
,允许用户输入玩家姓名和游戏类型。然后,游戏类型将用作原型单元的详细信息标签

然后,我希望根据细节文本标签的不同,将每个单元格推送到不同的视图控制器。目前我只有2种游戏类型,我知道我需要在tableView
DidSelectRowatineXpath
中设置逻辑,以选择要使用的序列。我从视图控制器(而不是单元格)设置分段,每个分段都有一个唯一的标识符。我只是不知道如何设置我的if语句来使用
gameType
作为选择哪个segue的决定因素

以下是我的
MasterViewController.m
文件中的一些代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"scoreKeeperCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    scoreKeeper *keeperAtIndex = [self.dataController objectInListAtIndex:indexPath.row];

    [[cell textLabel]setText:keeperAtIndex.name];
    [[cell detailTextLabel] setText:keeperAtIndex.gameType];

    return cell;
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if(cell.detailTextLabel) {
          //statement
    }
    if ([[segue identifier] isEqualToString:@"ShowKeeperDetails"]) {
        MADDetailViewController *detailViewController = [segue destinationViewController];

        detailViewController.keeper = [self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row];
    }
}

看来你走对了方向。然而,我认为你等待的时间有点太长了,不能选择哪个阶段。也许这样的事情适合你:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    if ([cell.detailTextLabel.text isEqualToString:@"TEXT"]) 
    {
        [self performSegueWithIdentifier:@"segueTypeOne" sender:nil];
    } 
    else 
    {
        [self performSegueWithIdentifier:@"segueTypeTwo" sender:nil];
    }
}

您也可以创建不同单元的原型,每个原型连接到不同的序列,从而产生不同的视图,然后使用正确的原型在
dequeueReusableCellWithIdentifier

中获取单元,谢谢您的回答!我不知道它是否会起作用,因为目前的赛格根本不起作用。你知道我是否还需要prepareForSegue方法吗?我试着让它保持原来的样子,但第二段也有一个else语句,但没有用。没关系,是的,你的建议奏效了!我只是因为在didSelectRowAtIndexPath上没有注意到一个打字错误而遇到麻烦。谢谢,谢谢!!