iPhone - Работа с подпапкой - PullRequest
       27

iPhone - Работа с подпапкой

0 голосов
/ 19 ноября 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. Для других файлов он выдвигает alertView на предмет того, что это неизвестный файл.

(и я застрял здесь ..) 5. Если выбранный элемент является папкой, он должен снова открыть tableView, который отображает содержимое папки.

То есть он должен открывать вложенные файлы и подпапки в табличном представлении, которое должно быть рекурсивной функцией. Пожалуйста, помогите мне сделать это ..

Я думаю, что мои скриншоты могут дать некоторые идеи.

Это мой просмотр таблицы с указанием содержимого моего каталога.

alt text

где "SQLTutorial" - это папка в списке выше

Это подробный вид файла изображения

alt text

Это подробный вид видеофайла

alt text

Это подробный вид аудио файла

alt text

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

Ответы [ 3 ]

1 голос
/ 19 ноября 2010

Лучше всего будет показать имя папки как часть начального списка (ваше первое изображение), и, когда он будет выбран, вы создадите новый список с содержимым папки и отправите его на контроллер навигации.

Вероятно, вам потребуется реорганизовать ваше табличное представление, чтобы получить ivar, содержащий ваш "путь", и добавить, если у вас его еще нет, контроллер навигации.

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

В дополнение к ответу Павла, вы можете добавить 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];
}
0 голосов
/ 19 ноября 2010

Если файлы и папки загружаются в viewDidLoad контроллера представления, то самый простой способ - добавить свойство в контроллер представления, чтобы указать исходную папку.Поэтому, когда пользователь касается ячейки подпапки, вы можете запустить новый контроллер представления, установить свойство для этой подпапки и передать его в контроллер навигации.

...