设置特定的UITableView行以推入特定的详细信息视图?

时间:2013-05-24 15:48:31

标签: ios objective-c uitableview

我目前在UITableView中有7行,我正在使用segues来推送详细视图。但是,我目前有两个不同的视图控制器,想要这样的东西:

如果选择第1行和第2行,请按下:“showMenuDetail1” 如果选择了第3行到第4行,请按下:showMenuDetail2“

这就是我目前所拥有的:我不确定如何将行精确地分配给特定的行。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"showMenuDetail1"]) {
        NSIndexPath *indexPath = [self.menuTableView indexPathForSelectedRow];
        HomeDetailViewController *HDViewController = segue.destinationViewController;
        HDViewController.theName = [[menu objectAtIndex:indexPath.row] name];
    }
}

任何帮助将不胜感激!我知道这是一个if和else语句,但我不确定如何写出确切的条件。谢谢!

1 个答案:

答案 0 :(得分:1)

创建两个segues。重要的想法是附加到表视图单元格,而是将它们从包含表格的视图控制器拖到它们各自的目的地。给每个人一个标识符。

然后在tableView:didSelectRowAtIndexPath:中,检查indexPath.row并触发相应的segue。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row < 2) { // or whatever
        [self performSegueWithIdentifier:@"SegueForRows0and1" sender:self];
    }
    // etc...
}

如果需要,您仍然可以实现prepareForSegue,包括,如果需要,请参考tableView的indexPathForSelectedRow