使用QLPreviewController时遇到了一些问题。实际上,我必须在我的应用程序中显示PDF,如果我在UINavigationController应用程序中推送控制器,这个类工作正常。为此,我使用本教程:(http://iosdevelopertips.com/data-file-management/preview-documents-with-qlpreviewcontroller.html)。
问题是我需要在视图底部的UIToolbar伴随PDF。所以我创建了一个带有UIToolBar和QLPreviewController的新控制器,但是没有出现QLPreviewController:我对QLPreviewController视图的视图保持白色。
这是初始化代码并将控制器添加到视图中:
PdfReaderViewController = [[QLPreviewController alloc] init];
[PdfReaderViewController setDataSource:self];
[PdfReaderViewController setDelegate:self];
[PdfReaderViewController.view setFrame:myViewForPdfReader.frame];
[PdfReaderViewController setCurrentPreviewItemIndex:sollIndex];
vuePourLecteurPDF = PdfReaderViewController.view;
[PdfReaderViewController reloadData];
我注意到两种方法中的一种......:
- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index;
reloadData时不调用QLPreviewControllerDataSource的。第二个返回一个正整数:
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller;
我不明白这个问题,我只知道两种方法都是正确的,因为我通过在UINavigationController中推送QLPreviewController来测试。
我读了一些帖子:
Customizing QLPreviewController
Adding QLPreviewController as subview doesn't load PDF
blank QLPreviewController in iOS application
......但这对我没有帮助
答案 0 :(得分:0)
将QLPreviewController作为childViewController嵌入到新的自定义容器视图控制器中。 不要试图直接混淆其视图结构IMO