我有一个tableView,它列出了包含jpg,pdf,zip,mp3,mp4,sql,..文件甚至文件夹的内容目录。在下一步中,我有一个detailView,它显示所选文件的一些属性,如fileName,fileSize,filePath,fileType。一切都很完美。
但实际上我在detailView中添加了一个附加选项。
即,
(我被困在这里..)5。如果所选项目是一个文件夹,它应该再次打开一个tableView,显示该文件夹的内容。
也就是说,它应该打开tableView中的子文件和子文件夹,这应该是一个递归函数。请帮我这样做..
我认为我的屏幕截图可能会提供一些想法。
这是我的tableView列出了我的目录的内容..
其中“SQLTutorial”是上面列表中的文件夹
这是图像文件的详细信息视图
这是视频文件的详细视图
这是音频文件的详细视图
请帮我完成一些示例代码的过程,以查看tableView中的文件夹和子文件夹。提前谢谢。
答案 0 :(得分:1)
最好的方法是将文件夹名称显示为初始列表(您的第一个图像)的一部分,然后在选中时,您将创建一个包含文件夹内容的新列表,并将其推送到导航控制器。
你可能需要重构你的表视图以获得包含你的“路径”的ivar,并添加一个导航控制器(如果你还没有)。
答案 1 :(得分:0)
如果文件和文件夹是在视图控制器的viewDidLoad中加载的,那么最简单的方法是向视图控制器添加属性以指示源文件夹。因此,当用户触摸子文件夹单元格时,您可以初始化新的视图控制器,将该属性设置为该子文件夹并将其推送到导航控制器。
答案 2 :(得分:0)
除了Paul回答,您可以添加'文件夹'ivar并在选择行时定义它:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
FolderViewController * detailViewController = [[FolderViewController alloc] initWithNibName:@"yourTableView" bundle:nil];
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
// Set the title of the navigation item for the table view
detailViewController.folder = cell.textLabel.text;
detailViewController.navigationItem.title = cell.textLabel.text;
// Pass the selected object to the new view controller.
[controller.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}