我目前正在尝试将我的应用转换为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中的数据。
非常感谢任何帮助或示例代码!
答案 0 :(得分:1)
您可以使用-performSegueWithIdentifier:sender:
以编程方式从一个视图控制器转换到另一个视图控制器。只需将配置dvc
的代码移至您的-prepareForSegue:sender:
实施。
另一种选择是将故事板中的segue从表格中的单元格连接到下一个视图控制器。这将导致在选择行时立即触发segue,这将阻止您必须以编程方式启动segue。在这种情况下,您只需实现-prepareForSegue:sender:
即可在segue的目标视图控制器中设置任何必要的数据。 sender
参数将是被点击的表格单元格,您可以使用它来查找所选行。