代码之家  ›  专栏  ›  技术社区  ›  iOS

iPhone-使用子文件夹

  •  0
  • iOS  · 技术社区  · 14 年前

    我有一个表视图,其中列出了内容目录,其中包括jpg,pdf,zip,mp3,mp4,sql,。。文件甚至文件夹。在下一步中,我将拥有一个detailView,它显示所选文件的一些属性,如fileName、fileSize、filePath、fileType。一切都很完美。

    但实际上我在detailView中包含了一个附加选项。

    也就是说,

    1. 如果tableView中选定的文件是图像文件,则它会在detailView中打开一个imageView以显示该图像。
    2. 如果所选文件是mp3,则会打开播放器在“详细信息”视图中播放歌曲。
    3. 如果所选文件是视频或mp4文件,则会打开播放器以在“详细视图”中播放该视频。
    4. 对于其他文件,它会推送一个关于它是未知文件的alertView。

    (我被困在这里……)5。如果所选项目是文件夹,则应再次打开显示文件夹内容的tableView。

    也就是说,它应该打开tableView中的子文件和子文件夹,tableView应该是递归函数。请帮我。。

    我想我的屏幕截图可以给你一些建议。

    这是我的表格视图,列出了我的目录。。

    alt text

    其中“SQLTutorial”是上面列表中的一个文件夹

    这是图像文件的详细视图

    alt text

    这是视频文件的详细视图

    alt text

    这是音频文件的详细视图

    alt text

    请用一些示例代码帮助我完成此过程,以便在tableView中查看文件夹和子文件夹。提前谢谢你。

    3 回复  |  直到 14 年前
        1
  •  0
  •   Benoît    14 年前

    除了Paul answer,您还可以添加一个“folder”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];
    }
    
        2
  •  1
  •   Paul Ardeleanu    14 年前

    最好的方法是将文件夹名称显示为初始列表(第一个图像)的一部分,选中后,将创建包含文件夹内容的新列表并将其推送到导航控制器。

    您可能需要重构表视图,使其具有包含您的“路径”的ivar,并添加(如果您还没有)导航控制器。

        3
  •  0
  •   tia    14 年前

    如果文件和文件夹是在视图控制器的viewDidLoad中加载的,那么最简单的方法是向视图控制器添加一个属性来指示源文件夹。因此,当用户触摸子文件夹单元格时,可以初始化新的视图控制器,将属性设置为该子文件夹并将其推送到导航控制器。