- 在我们的app中可能会涉及到doc,docx,pdf,xls等格式的文档预览,或者调用第三方app打开文档的功能。如果不是严格要求,使用UIWebView打开是一种最为简单快捷的方式(具体方法很简单,在此就不多做说明)。下面说的是如何使用iOS自带的文档预览功能。
UIDocumentInteractionController
UIDocumentInteractionController是iOS 很早就出来的一个功能。但由于平时很少用到,自然也就不知道这个功能,从而忽略了一个功能强大的”文档阅读器”。
UIDocumentInteractionController主要由两个功能,一个是在自己的app里预览文档,另一个就是调用iPhone里第三方相关的app打开文档。
上代码:
*使用UIDocumentInteractionController不需要其他的依赖库,所以只要项目有UIKit库就可以了,在需要的类里需要引入
#import <UIKit/UIKit.h>
1、声明对象
当前视图要准守 UIDocumentInteractionControllerDelegate 协议
UIDocumentInteractionController *documentInteraction;
如果你用@propoty 要使用强引用。
2、实例化对象、 传入文档地址
#读取目标文档路径
filePathStr = [[NSBundle mainBundle]pathForResource@"mypdf" ofType:@"pdf"];
#实例化并传入文档URL
documentInteraction = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePathStr]];
#设置代理
documentInteraction.delegate = self;
#提前跟编译器说好,我一会要模态跳转该controller
[documentInteraction presentPreviewAnimated:YES];
前面这些基本步骤是预览和调用第三方都需要的前奏。
下面是实现功能( 开始了… 不要激动…)
/*
必须实现的代理方法 预览窗口以模态窗口的形式显示,因此需要在该方法中返回一个view controller ,作为预览窗口的父窗口。如果你不实现该方法,或者在该方法中返回 nil,或者你返回的 view controller 无法呈现模式窗口,则该预览窗口不会显示。
*/
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{