iPhone - 使用子文件夹
Posted
技术标签:
【中文标题】iPhone - 使用子文件夹【英文标题】:iPhone - Work with subfolder 【发布时间】:2010-11-19 11:42:36 【问题描述】:我有一个 tableView,它列出了内容目录,其中包括 jpg、pdf、zip、mp3、mp4、sql、.. 文件甚至文件夹。在下一步中,我有一个 detailView,它显示所选文件的一些属性,例如 fileName、fileSize、filePath、fileType。一切都很完美。
但实际上我在 detailView 中添加了一个附加选项。
也就是说,
-
如果 tableView 中选择的文件是图像文件,它会在 detailView 中打开一个 imageView 来显示该图像。
如果选择的文件是 mp3,它会打开一个播放器在 detailView 中播放歌曲。
如果所选文件是视频或 mp4 文件,则会打开一个播放器来详细播放该视频。
对于其他文件,它会推送关于它是未知文件的 alertView。
(我卡在这里..) 5. 如果选中的项目是一个文件夹,它应该再次打开一个 tableView 显示文件夹的内容。
也就是说,它应该在 tableView 中打开子文件和子文件夹,这应该是一个递归函数。请帮我这样做..
我认为我的屏幕截图可能会提供一些想法。
这是我的 tableView 列出了我的目录的内容..
其中“SQLTutorial”是上述列表中的一个文件夹
这是一个图像文件的详细视图
这是一个视频文件的详细视图
这是一个音频文件的详细视图
请用一些示例代码帮助我完成该过程,以查看 tableView 中的文件夹和子文件夹。提前谢谢你。
【问题讨论】:
【参考方案1】:最好的办法是将文件夹名称显示为初始列表(您的第一张图片)的一部分,并且在选择后,您将创建一个包含文件夹内容的新列表并将其推送到导航控制器。
您可能需要重构您的表格视图以拥有一个包含您的“路径”的 ivar,并添加一个导航控制器(如果您还没有的话)。
【讨论】:
谢谢..你能简单介绍一下第二部分吗? 当我在 tableView 中选择文件夹“SQLTutorial”时,它应该导航到推送其内容的 tableView。请问有这个方法的源码吗?【参考方案2】:除了保罗回答,你可以添加一个'文件夹'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];
【讨论】:
【参考方案3】:如果文件和文件夹是在视图控制器的 viewDidLoad 中加载的,那么最简单的方法是在视图控制器中添加一个属性来指示源文件夹。因此,当用户触摸子文件夹单元格时,您可以初始化新的视图控制器,将属性设置为该子文件夹并将其推送到导航控制器。
【讨论】:
你能帮我提供一个在选择文件夹时推送 tableView 的源代码吗? 当我在 tableView 中选择文件夹“SQLTutorial”时,它应该导航到推送其内容的 tableView。请问有这个方法的源码吗?以上是关于iPhone - 使用子文件夹的主要内容,如果未能解决你的问题,请参考以下文章
iPhone - 检测对 UITableViewCell 子视图的触摸