iOS 文档预览功能

本文介绍在iOS应用中如何使用UIDocumentInteractionController和QLPreviewController实现文档预览功能。UIDocumentInteractionController提供预览和调用第三方应用打开文档的能力,而QLPreviewController属于QuickLook.framework,用于更高级的文档预览。文中包含详细代码示例和解决txt文件乱码问题的方法。
摘要由CSDN通过智能技术生成
  • 在我们的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{

    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值