2017-10-11 7 views
-1

나는 이미 운이없는 WKWebView를 시도해 보았습니다. 이제 QLPreviewController를 사용하려고합니다.iOS 11에 PDF 표시

나는 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' ->에 print 문/중단 점을 추가하고 해당 파일이 해당 URL에 있는지 확인하십시오 :'FileManager.default.fileExists (_ atPath : String)'. –

+0

예 파일이 존재합니다. –

+0

파일 경로를 가져 와서 URL로 변환하지 마십시오. URL ('URLForResource')을 가져옵니다. 그것을 반환하기 전에 그것이 'nil'인지 확인하십시오. – matt

답변

0

QLPreviewController를 서브 클래 싱 한 것 같습니다. 그것은 불법이며 불필요합니다. 미리보기 컨트롤러를 만들고 구성한 다음 밀어 넣거나 제시하면됩니다.