Воспроизведение фильмов, аудио и отображение содержимого папки в детальном просмотре - PullRequest
0 голосов
/ 17 ноября 2010

У меня есть tableView, который перечисляет содержимое каталога, который включает в себя файлы jpg, pdf, zip, mp3, mp4, sql, .. и даже папки. На следующем этапе у меня есть detailView, который отображает некоторые свойства выбранного файла, такие как fileName, fileSize, filePath, fileType. Все отлично работает.

Но на самом деле мой план состоит в том, чтобы включить дополнительную опцию в detailView.

То есть

  1. Если выбранный файл в tableView является файлом изображения, он должен открыть imageView в detailView для отображения этого изображения.
  2. Если выбранный файл представляет собой mp3, он должен открыть проигрыватель для воспроизведения песни в detailView.
  3. Если выбранный файл является файлом видео или mp4, он должен открыть проигрыватель для воспроизведения этого видео в detailView.
  4. Если выбранный элемент является папкой, он должен снова открыть tableView, который отображает содержимое папки.
  5. Для других файлов следует выдать alertView, поскольку это неизвестный файл.

Надеюсь, моя концепция была изложена. Пожалуйста, помогите мне продолжить некоторые примеры кодов. Заранее спасибо ..

1 Ответ

0 голосов
/ 17 ноября 2010

Создание динамического detailView, контроллера для обработки изображений, контроллера для обработки видео и т. Д. В зависимости от типа файла.

Например (см. Пример SplitViewController, предоставленный Apple):

UIViewController <SubstitutableDetailViewController> *detailViewController = nil;

if("movie cell tapped"){
    MovieViewController *newDetailViewController = [[MovieViewController alloc] init];
    detailViewController = newDetailViewController;
}
if("image cell tapped"){
    ImageViewController *newDetailViewController = [[ImageViewController alloc] init];
    detailViewController = newDetailViewController;
}
/*  and so on   */


// Update the split view controller's view controllers array.
NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, detailViewController, nil];
splitViewController.viewControllers = viewControllers;
[viewControllers release];

// Dismiss the popover if it's present.
if (popoverController != nil) {
    [popoverController dismissPopoverAnimated:NO];
}

// Configure the new view controller's popover button (after the view has been displayed and its toolbar/navigation bar has been created).
if (rootPopoverButtonItem != nil) {
    [detailViewController showRootPopoverButtonItem:self.rootPopoverButtonItem];
}

[detailViewController release];
...