2

我对 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 进行了测试。

我读了一些帖子:

自定义 QLPreviewController

将 QLPreviewController 添加为子视图不会加载 PDF

QLPreviewController 的视图

iOS应用程序中的空白QLPreviewController

...但这对我没有帮助

4

1 回答 1

2

将 QLPreviewController 作为 childViewController 嵌入到新的自定义容器视图控制器中。不要试图直接弄乱它的视图结构IMO

于 2012-11-11T15:10:33.757 回答