编程tableviews segue向下钻取

时间:2013-07-17 21:58:38

标签: ios uitableview plist uistoryboard segue

我目前正在尝试将我的应用转换为Storyboards。我的数据目前存储在一个plist文件中,我可以使用当前didSelectRowAtIndexPath:方法中的以下代码轻松浏览我的tableviews:

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

{
NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];
NSArray *children = [dictionary objectForKey:@"Children"];

[tableView deselectRowAtIndexPath:indexPath animated:YES];

if ([children count] == 0)

{
    NSString *tempString1 = [dictionary valueForKeyPath:@"Movie"];
    NSString *tempString2 = [dictionary valueForKeyPath:@"Text"];
    NSString *tempString3 = [dictionary valueForKeyPath:@"Diagram"];

    DetailsVC *dvc = [[DetailsVC alloc] initWithNibName:@"DetailsVC" bundle:nil];

    dvc.movie = tempString1;
    dvc.pdfdesc = tempString2;
    dvc.pdfDiagram = tempString3;
    dvc.navigationItem.title = [dictionary valueForKeyPath:@"Title"];
  [self.navigationController pushViewController:dvc animated:YES];

}
else

{

    LevelsVC *lvc = [[LevelsVC alloc] initWithNibName:@"LevelsVC" bundle:[NSBundle mainBundle]];

    lvc.currentLevel += 1;
    lvc.navigationItem.title = [dictionary valueForKeyPath:@"Title"];
    [self.navigationController pushViewController:lvc animated:YES];

    lvc.tableDataSource = children;

    }

我的问题是:我如何将此方法转换为与Segues和Storyboard一起使用?我可以轻松地为detailViews创建一个segue,网上有一百万个教程,但我根本无法弄清楚如何深入查看tableview中的数据。

非常感谢任何帮助或示例代码!

1 个答案:

答案 0 :(得分:1)

您可以使用-performSegueWithIdentifier:sender:以编程方式从一个视图控制器转换到另一个视图控制器。只需将配置dvc的代码移至您的-prepareForSegue:sender:实施。

另一种选择是将故事板中的segue从表格中的单元格连接到下一个视图控制器。这将导致在选择行时立即触发segue,这将阻止您必须以编程方式启动segue。在这种情况下,您只需实现-prepareForSegue:sender:即可在segue的目标视图控制器中设置任何必要的数据。 sender参数将是被点击的表格单元格,您可以使用它来查找所选行。