0

我目前正在尝试将我的应用程序转换为 Storyboard。我的数据当前存储在一个 plist 文件中,我在当前didSelectRowAtIndexPath:方法中使用以下代码非常轻松地向下钻取了我的表视图:

-(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 和 Storyboards 一起使用?我可以轻松地为detailViews 创建一个segue,网上有一百万个教程,但我根本不知道如何深入查看我的tableview 中的数据。

任何帮助或示例代码将不胜感激!

4

1 回答 1

1

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

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

于 2013-07-20T14:24:28.927 回答