2017-10-11 103 views
-1

我已经尝试过没有运气的WKWebView。现在我试图使用QLPreviewController。在iOS中显示PDF 11

我创建了一个UIViewController,并将它在QLPreviewController下进行了子类化。

在我viewDidLoad中我设置委托和数据源:

self.dataSource = self; 
self.delegate = self; 
self.currentPreviewItemIndex = 0; 

然后我有以下两种方法来获取项目在视图控制器和数字文件路径:

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { 
    return 1; 
} 

- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { 
    NSString *pdfPath = [[NSBundle mainBundle] pathForResource:@"BOR" ofType:@"pdf"]; 
    NSURL *fileURL = [[NSURL alloc] initWithString:pdfPath]; 
    return fileURL; 
} 

当我导航到我的视图控制器时,视图是灰色的并显示以下文本:

“无文件预览”

我在做什么错?

+0

在你的'return fileURL' - >上添加一个打印语句/断点,并检查该文件是否位于该URL:'FileManager.default.fileExists(_ atPath:String)'。 –

+0

是的文件确实存在 –

+0

不要接受文件路径并将其转换为URL。取其URL('URLForResource')。在你回来之前,看看它是否是'nil'。 – matt

回答

0

看来你已经子类QLPreviewController?这是非法的和不必要的。您只需制作一个预览控制器,对其进行配置,然后推送或呈现它。