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];