QLPreviewController 是苹果自带用于展示pdf文件等的控件,简单实用。需要导入<QuickLook>框架,并且创建一个QLPreviewController。QLPreviewController可以用presentViewController:animated:completion: 展示,也可以直接pushViewController:animated:引出。QLPreviewController必须实现QLPreviewControllerDataSource,QLPreviewControllerDataSource这里面有两个方法是必须实现的。
#import <QuickLook/QuickLook.h>
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller;
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index;
但是QLPreviewController要修改界面也是比较困难的,比如需要将分享按钮和整个工具条去掉,修改导航栏的样式,做这样的UI直接在QLPreviewController上做是比较困难的。
基于此,我们可以将QLPreviewController添加到自己的控制器上,然后去自定义工具条和导航栏。
// 将QLPreviewControler 添加到本控制器上
QLPreviewController *HPQLController = [[QLPreviewController alloc] init];
HPQLController.dataSource = self;
[self addChildViewController:HPQLController];
[HPQLController didMoveToParentViewController:self];
[self.view addSubview:HPQLController.view];
HPQLController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);