以编程方式从动态单元格中激活segue

时间:2013-01-16 22:57:41

标签: dynamic uitableview ios6 segue

我有两个分组的部分,每个部分包含一个单元格视图。单击时,我需要一个单元格转到一个场景,另一个单元格转到另一个场景。我已经设置了从主视图控制器到另外两个场景的segue,现在我需要指示程序在单击正确的单元格时触发segue。

我认为这必须发生在我的代码区域中,每个部分都是自定义的。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    UITableViewCell *serverLocCell = [tableView dequeueReusableCellWithIdentifier:@"serverLocation"];

    switch (indexPath.section) {
        case 0:
            serverLocCell.textLabel.text = testLocation;
            serverLocCell.detailTextLabel.text = @"Change";
            break;
        case 1:
            serverLocCell.textLabel.text = @"Speed Test";
            serverLocCell.detailTextLabel.text = @"Change";
            break;
        default:
            break;
    }

    return serverLocCell;
}

我想我也需要这个功能:

self preformSegueWithIdentifier

然而,无法确定正确的代码/位置。

两个segue都有自己的标识符。

1 个答案:

答案 0 :(得分:0)

您认为需要performSegueWithIdentifier是正确的。您需要此方法以编程方式触发segue,这在您的情况下是必需的。

您需要使用表视图委托didSelectRowAtIndexPath来调用具有正确标识符的performSegueWithIdentifier,该标识符基于所点击的单元格:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0) {
        [self performSegueWithIdentifier:@"YourFirstIdentifier" sender:nil];
    }
    else {
        [self performSegueWithIdentifier:@"YourSecondIdentifier" sender:nil];
    }
}