1

UITableViewドキュメントディレクトリの内容を一覧表示するがあります。その中にいくつかのzipファイルがあります。内のファイルをタッチするUITableViewと、対応するzipファイルが解凍され、一時ディレクトリ(NSTemporaryDirectory())に抽出されます。

問題は、tableViewで抽出したコンテンツをどのようにナビゲートするかです。抽出されたzipファイルにフォルダーが含まれているとすると、それらをtableViewで表示できるはずです。実際には、フローはドリルダウンのようなものでなければなりません。

zipファイルを抽出することはできますが、問題は、でそれらに移動する必要があることUITableViewです。

これは私の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のドキュメントディレクトリに同じ内容をプッシュしています。

4

1 に答える 1

1

ドリルダウンを処理する UINavigationController を使用する必要があります。各ドリルダウンは新しい UITableViewController です。

zip に含まれるファイルの表示を処理する 2 番目の UITableViewController サブクラスが必要です。zip フォルダーへのフルパスである NSString プロパティを持つことができます。そのディレクトリ内のファイルのリストをデータ ソースとして使用します。

起動時に元の tableView (コントローラー) を UINavigationController の rootView に追加します。zip ファイルを一覧表示する tableView をタップすると、抽出されたファイル (新しいフォルダー?) への参照を使用して、2 番目の UITableViewController を UINavigationController にプッシュします。

[UINavigationwController pushViewController:nextTableView animated:YES];

. _ _ _ UINavigationControllerまた、 Appleの UINavigationController に関するドキュメントもご覧ください。

于 2010-12-20T14:35:52.780 に答える