iPhone DrillDown - PullRequest
       1

iPhone DrillDown

0 голосов
/ 23 декабря 2010

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

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

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

Это моя didSelectRowAtIndexPath: часть,

NSString *filePath = //filePath;

if([[NSFileManager defaultManager]fileExistsAtPath:filePath]) {

NSLog(@"File exists at path: %@",filePath);         

} else {            

NSLog(@"File does not exists at path: %@", filePath);       
}               
NSString *tmpDir =NSTemporaryDirectory();       
ZipArchive *zip = [[ZipArchive alloc] init];
BOOL result = NO;
if([zip UnzipOpenFile:filePath]) {
    //zip file is there
    if ([zip UnzipFileTo:tmpDir overWrite:YES]) {

    //unzipped successfully

    NSLog(@"Archive unzip Success");

    result= YES;
} else {

    NSLog(@"Failure To Extract Archive, maybe password?");
    }

} else  {
    NSLog(@"Failure To Open Archive");
    }       
if([[NSFileManager defaultManager]fileExistsAtPath:tmpDir isDirectory:&isDir] && isDir) {

    NSLog(@"Its Folder");
    //Prepare to tableview.             
    RootViewController *rvController =[[RootViewController     alloc]initWithNibName:@"RootViewController"bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:rvController animated:YES];
}

Но это не работает. Это подталкивание того же содержимого в каталог документов в tableView

Пожалуйста, помогите мне ..

Спасибо ..

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

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

- (id)initWithDirectoryPath:(NSString*)path {
    self = [super initWithNibName:@"DirectoryViewController" bundle:nil];
    if (self != nil) {
        self.directoryPath = path;
        self.navigationItem.title = [path lastPathComponent];
    }
}

Затем вы можете создать свой контроллер вида и вставить его в контроллер навигации с помощью:

DirectoryViewController *viewController = [[DirectoryViewController alloc] initWithDirectoryPath:path];
[self.navigationController pushViewController:viewController animated:YES];    
[viewController release];

Не забудьте освободить ВК!

1 голос
/ 23 декабря 2010

где вы говорите своему RootViewController, чтобы открыть новый путь? Для меня это выглядит так, как будто вы снова открываете тот же RootViewController со старым путем, поэтому он обязательно откроет тот же самый путь снова

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