我正在尝试通过 QuickLook 框架打开 PDF,而不使用 UIScrollView ...
我相信我错过了一些东西......
我认为我出错的地方是我需要使用 QLPreviewController 并且在 QLPreviewController 上是一个必须符合 QLPreviewItem 的数据源。该文档指出 NSURL 确实符合 QLPriewItem 所以我将 preview.dataSource 设置为抛出错误的 NSURL:
[NSURL numberOfPreviewItemsInPreviewController:]:无法识别的选择器发送到实例
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSURL numberOfPreviewItemsInPreviewController:]:无法识别的选择器发送到实例 0x5b5f200”
这让我觉得 NSURL 不符合。
我认为所有必要的代码......
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item {
return YES;
}
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller {
return [documents count];
}
- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index {
return [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[documents objectAtIndex:index] ofType:nil]];
}
- (void)pushPDF {
QLPreviewController *preview = [[QLPreviewController alloc] init];
preview.dataSource = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"MCIT_Quiz" ofType:@"pdf"]];
//preview.currentPreviewItemIndex = 0;
[self presentModalViewController:preview animated:YES];
[preview release];
}