iPhone - detailView控制器

时间:2010-11-18 13:22:03

标签: iphone uitableview uiimageview detailsview

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

但实际上我的计划是在detailView中包含一个额外的选项。

即,

  1. 如果tableView中的选定文件是图像文件,则应在detailView中打开imageView以显示该图像。
  2. 如果所选文件是mp3,则应打开播放器以在detailView中播放歌曲。
  3. 如果所选文件是视频或mp4文件,则应打开播放器以详细播放该视频。
  4. 如果所选项目是一个文件夹,它应该再次打开一个tableView,它显示该文件夹的内容。
  5. 对于其他文件,它应该推送一个alertView,告知它是一个未知文件。
  6. 希望我的概念得到很好的解释。我有播放.mp3和.mp4文件的方法。现在我被困在推送imageView和文件夹的情况下。我没有想法继续这两种方法。

    这是我的tableView alt text

    这是我的视频文件详情 alt text

    这是我的.mp3文件的detailView alt text

    这是我的imageView留空的detailView。 alt text

    请帮我继续处理一些示例代码。提前谢谢。

3 个答案:

答案 0 :(得分:1)

根据您的截图和实现其他文件类型的进度判断,我假设您能够将文件路径的信息传递给详细信息视图。因此,对于图像文件,我将讨论如何将其显示为UIImageView

对于图像视图,您需要创建一个带有路径的UIImage

下面的代码示例:假设pathString是带有图像路径的NSString*,而imageView现在是UIImageView,应该显示图像。此代码将驻留在处理图像显示的-viewDidLoad的{​​{1}}方法中。

detailViewController

对于文件夹视图,这有点不同。为了获得最佳结果,您需要递归加载正用于显示文件列表的UIImage* theImage = [[UIImage alloc] initWithContentOfFile:pathString]; imageView.image = theImage; [theImage release]; (以便它将递归地继承所有文件/文件夹处理)。

我建议在实际推送视图之前将tableViewController之类的实例变量添加到folderPath。并且tableViewController应该使用它作为基本路径。

下面的代码示例:假设tableViewController是具有目标路径的pathStringNSString*现在是要打开的新detailViewController的实例。此代码将驻留在将创建要在tableViewController

范围内显示的新detailViewController的方法中
tableView:didSelectRowAtIndexPath:

然后,您应该在detailViewController.folderPath = pathString; [self.navigationController pushViewController:detailViewController animated:YES]; 的{​​{1}}方法中实现,应该从-viewDidLoad实例变量中读取哪些文件夹内容。

答案 1 :(得分:0)

此方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 在某个单元格上发生触摸时调用。

您可以使用 [yourTableView cellForRowAtIndexPath:cellIndex];

获取单元格

之后,您可以看到type属性,并打开相应的viewcontroller。 的 [self.navigationController pushViewController:detailViewController animated:YES];

答案 2 :(得分:0)

创建detailView时,应该使用其他参数来重载init,这些参数指示要显示的媒体类型以及此资源的url /文件。

如果是图像,look at this post