我正在尝试一些应该简单的事情,但我认为我错过了一些明显的东西。
我只是想将一系列PDF加载到QuickLook预览中。文件名列在plist文件中,所以首先我加载plist的内容并循环遍历它,生成一个文件名数组。然后我想将该数组传递给QuickLook预览并将预览发送到导航控制器。
这首先将文件列表传递给tableview,然后当你点击表格单元格时,它会在你点击的单元格的索引处打开预览。
我的目标是消除tableview,只需在零索引处加载预览。
我怀疑是我传递了错误的数组,或错误的文件路径(我想我试图发送一系列NSURL,但也许这是错误的事情要做。)
无论如何,应用程序构建正常并启动。但是一旦它尝试加载QuickLook预览,它就会挂起。
有人可以告诉我我在这里失踪了吗?
// issueName是plist文件的基本名称...
NSString *path = [[NSBundle mainBundle] pathForResource:issueName ofType:@"plist"];
NSArray *documentSpecs = [[NSArray alloc] initWithContentsOfFile:path];
NSString *documentName = [[NSString alloc]init];
NSURL *documentURL = [[NSURL alloc]init];
for (NSString *documentSpec in documentSpecs) {
NSArray *components = [documentSpec componentsSeparatedByString:@";"];
documentName = components[0];
documentURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:documentName ofType:@"pdf"]];
[documentURLs addObject:documentURL];
}
docURLs = [NSArray arrayWithArray:documentURLs];
QLPreviewController *preview = [[QLPreviewController alloc] init];
preview.dataSource = self;
preview.currentPreviewItemIndex = 0;
[[self navigationController] pushViewController:preview animated:YES];
顺便说一句,我确实添加了一个QuickLook数据源,或者至少我认为我做过了,但也许我搞砸了这个:
#pragma mark - QuickLook Preview Data Source
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller
{
return [self.docURLs count];
}
- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
return self.docURLs[index];
}
有人可以帮我解决这个问题吗?谢谢!