Разархивируйте и вставьте содержимое в табличное представление - PullRequest
1 голос
/ 17 декабря 2010

У меня есть tableView, который перечисляет содержимое моего каталога документов.У меня есть несколько почтовых файлов в этом.Если я коснусь файла в tableView, соответствующий zip-файл распаковывается во временную директорию.

Проблема в том, как перемещаться по содержимому, которое я извлек в tableView.Если предположить, что извлеченный zip-файл содержит папки, я должен иметь возможность просматривать их в виде таблицы.На самом деле поток должен быть похож на DrillDown.

Я могу извлечь zip-файлы, но проблема в том, что их нужно перемещать в табличном представлении.Пожалуйста, дайте мне несколько идей или некоторые исходные коды, которые помогут моей проблеме.Спасибо ..

1 Ответ

0 голосов
/ 09 июня 2011

Я постараюсь дать вам несколько советов, как решить эту проблему. Лучший способ, который я могу себе представить, - это создание табличного представления, которое будет постоянно обновлять свой источник данных каждый раз, когда вы нажимаете на элемент в списке.

Давайте проясним: представьте, что у вас есть первое табличное представление со списком zip-файлов. Вы нажимаете на строку, распаковываете zip-файл в локальную папку, а затем помещаете в свой контроллер навигации другую таблицу, в которой вы увидите содержимое разархивированного файла.

В этой новой таблице будет сохранен указатель на родительскую папку (назовем ее parent), в начале она будет иметь значение nil, и он будет содержать список содержимого папки, в которой вы находитесь. Итак, этот источник данных покажет вам содержимое корневой папки (той, в которой вы распаковали zip-файл), с папками и файлами.

Когда вы нажимаете на строку, представляющую файл, вы реализуете соответствующую логику (откройте файл, загрузите его, отредактируйте, отправьте по электронной почте или что-то еще)

Когда вы щелкаете по строке, представляющей папку, вы должны:

  1. Установите для источника данных parent папку, в которой вы находитесь (в данном случае корневую папку)
  2. Прочитать содержимое выбранной вами папки
  3. Обновить данные источника данных только что прочитанным содержимым
  4. Обновить данные в табличном представлении (например, [tableView reloadData])

В вашем табличном представлении должна быть кнопка или выделенная строка для перехода назад к родительской папке (той, которая содержится в параметре parent), чтобы вы могли перемещаться назад и вперед в любое время.

Я думаю, что это решение должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...