2017-10-11 107 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?這是非法的和不必要的。您只需製作一個預覽控制器,對其進行配置,然後推送或呈現它。