Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UINavigationController使用表视图向下钻取_Ios_Cocoa Touch_Uitableview_Uinavigationcontroller_Drilldown - Fatal编程技术网

Ios UINavigationController使用表视图向下钻取

Ios UINavigationController使用表视图向下钻取,ios,cocoa-touch,uitableview,uinavigationcontroller,drilldown,Ios,Cocoa Touch,Uitableview,Uinavigationcontroller,Drilldown,我有一个UITableView,它列出了我的文档目录的内容。我有一些压缩文件在里面。如果我在UITableView中触摸一个文件,相应的zip文件将被解压缩并提取到一个临时目录(NSTemporaryDirectory()) 问题是如何导航我在tableView中提取的内容。如果假设提取的zip文件包含文件夹,我应该能够在tableView中查看它们。实际上,流应该像一个向下钻取 我能够提取zip文件,但问题是,必须在UITableView中导航到它们 这是我的didSelectRowAtInd

我有一个
UITableView
,它列出了我的文档目录的内容。我有一些压缩文件在里面。如果我在
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的文档目录中推送相同的内容。

您需要使用UINavigationController来处理向下钻取。每个向下钻取都是一个新的UITableViewController

您需要第二个UITableViewController子类,该子类将处理zip中包含的文件的显示。它可以具有NSString属性,该属性是zip文件夹的完整路径。它使用该目录中的文件列表作为数据源

在启动时将原始tableView(控制器)添加到UINavigationController的根视图。点击列出zip文件的tableView时,将第二个UITableViewController推到UINavigationController上,并引用提取的文件(新文件夹?)


请参阅有关在
UINavigationController
中向下钻取的内容。另外,请访问Apple。

您需要使用UINavigationController来处理向下搜索。每个向下钻取都是一个新的UITableViewController

您需要第二个UITableViewController子类,该子类将处理zip中包含的文件的显示。它可以具有NSString属性,该属性是zip文件夹的完整路径。它使用该目录中的文件列表作为数据源

在启动时将原始tableView(控制器)添加到UINavigationController的根视图。点击列出zip文件的tableView时,将第二个UITableViewController推到UINavigationController上,并引用提取的文件(新文件夹?)

请参阅有关在
UINavigationController
中向下钻取的内容。还有,看看苹果

[UINavigationwController pushViewController:nextTableView animated:YES];