iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller。此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件。而且,从4.2开始,Quick Look Framework提供了对多种文档的内置打印。你可以参考DocumentInteraction Controller类参考以及Quick Look Framework指南,以及DocInteraction示例程序。
本文讨论了Document InteractionController的使用。
-、创建实例
 DocumentInteraction Controller使用静态方法interactionControllerWithURL创建实例,这个方法使用一个NSURL作为参数。
 代码:
 NSURL *url=[NSURL fileURLWithPath:path];
 controller = [UIDocumentInteractionController  interactionControllerWithURL:url];
 二、显示预览窗口
 Document Interaction Controller对象使用presentPreviewAnimated方法弹出一个全屏的文档预览窗口。
 代码:
 BOOL b=[controller presentPreviewAnimated:YES];
 三、显示菜单
如果你不想直接弹出预览窗口,你可以显示一个选项菜单给用户,由用户选择相应的操作。显示菜单可以使用下列方法:
 –presentOptionsMenuFromRect:inView:animated:
 –presentOptionsMenuFromBarButtonItem:animated:
 –presentOpenInMenuFromRect:inView:animated:
 –presentOpenInMenuFromBarButtonItem:animated:
 这些方法都是类似的,只是显示位置有区别而已。以下代码演示其中一个方法的使用。
 代码:
 CGRect navRect = self.navigationController.navigationBar.frame;
 navRect.size = CGSizeMake(1500.0f, 40.0f);
 [controller presentOptionsMenuFromRect:navRect inView:self.view  animated:YES];
 四、使用委托
 如果你显示一个Document Interaction Controller ,则必需要为delegate属性用指定一个委托。让委托告诉DocumentInteraction Controller如何显示。
 代码:
 controller.delegate =self;
 委托对象需要实现一系列委托方法,最常见的包括:
 –documentInteractionControllerViewControllerForPreview:
 –documentInteractionControllerViewForPreview:
 –documentInteractionControllerRectForPreview:
 这3个方法在用户点击“快速查看”菜单时依次调用。
 代码:
 - (UIViewController*)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController*)controller
 {
  return self;
 }
 - (UIView*)documentInteractionControllerViewForPreview:(UIDocumentInteractionController*)controller
 {
  return self.view;
 }
 - (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController*)controller 
{

  return self.view.frame;
 }
 //点击预览窗口的“Done”(完成)按钮时调用
 
- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController*)_controller 
{
     [_controller autorelease];
 }

转载于:https://www.cnblogs.com/bu779783251/archive/2013/05/15/3080929.html

iOS 利用UIDocumentInteractionController打开和预览文档相关推荐

  1. iOS利用UIDocumentInteractionController和Quick Look打开或预览文档

    在App的开发过程中,我们避免不了要打开软件中的文件,例如:Excel文件,Word文件,图片文件等不同格式的文件或者想要通过第三方的App来打开这些文件,那么我们就要用到UIDocumentInte ...

  2. 【板栗糖GIS】怎么将网络上只能在线预览文档另存为pdf(插件篇)

    怎么将网络上只能在线预览文档另存为pdf(插件篇) 目录 1.使用插件,这里推荐FireShot,好用免费 2.安装该插件的方式 3.打开在线预览文档的网址 4.点击插件-截取整个页面并且-另存为pd ...

  3. 前端页面预览word_前端实现在线预览文档

    前端实现在线预览文档 发布时间:2019-06-03 17:22, 浏览次数:529 <>前端实现在线预览文档 最近项目开发中需要实现在线预览Word,Excel,PowerPoint格式 ...

  4. 在线预览文档 Office Online

    前言 一直想学习做个在线预览文档的功能,今天使用Office Online Server 2016进行实现在线预览功能. 服务器版本选择:Office Online Server 2016搭配wind ...

  5. PHP 在线预览文档

    PHP 在线预览word.excel.ppt.pdf.txt等文档文件. PHP 在线预览文档 写代码比较少的方案. // PDF.text可以直接网页打开查看 // word.excel.ppt 文 ...

  6. OpenOffice在线预览文档

    使用OpenOffice在线预览文档 开发中遇到了一个需求,需要在线预览word文档,excel表格,pdf等等文件,于是经过一圈Google,发现了这个工具,openoffice会把文档转为pdf文 ...

  7. java实现openoffice在线预览文档

    1.openoffice需要导入的jar包 jodconverter-core-3.0-beta-4.jar juh-3.2.1.jar jurt-3.2.1.jar ridl-3.2.1.jar u ...

  8. 前端实现在线预览文档

    前端实现在线预览文档 最近项目开发中需要实现在线预览Word,Excel,PowerPoint格式的文档,网上查找了很多资源,各说纷纭,但是在一一尝试之后只有使用微软的预览接口才能成功,其他的会出现各 ...

  9. html怎么转换到百度,类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版...

    类似百度文库在线预览文档flash版(支持word.excel.ppt.pdf)+在线预览文档html版 (1).将文档转换为html,只支持支持office文档 (2).将文档转换为flash,实现 ...

最新文章

  1. SSHDroid及sshpass简介
  2. 男生和女生的差别(转载)
  3. 什么是滚动灯箱的全数字滚动系统?
  4. 在panel中显示一个新的form
  5. android 许可协议,Android 基本控件的使用二(注册许可协议)(CheckBox)
  6. javascript包装对象
  7. android知识图谱
  8. Java中字符串split() 的使用方法
  9. 工具库用久了,你还会原生操作 Cookie 吗?
  10. html5 游戏 算法,JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】...
  11. 《数字视频和高清:算法和接口》一3.3感知均匀性
  12. 【笔记】VUE学习笔记
  13. get方式乱码post方式不会乱码原因
  14. autosar网络管理_Autosar 软件框架
  15. python画兔子代码_Python基础练习实例11(兔子问题)
  16. html中加号实体,纯css实现加号“+”效果(代码示例)
  17. c语言报数问题程序,转圈报数问题(C语言):有n个人围成一圈,顺序排号……...
  18. html5 移动端手写签名,H5移动端项目实现手写签名功能 vue实现手写签名
  19. 运动耳机品牌推荐,热门六款运动耳机推荐
  20. (前端)HTML之CSS(选择器字体排版背景)

热门文章

  1. linux基础服务,Linux基础
  2. mysql schema命名规范_数据库设计 命名及编码规范
  3. 普通RNN的缺陷—梯度消失和梯度爆炸
  4. pythoni手机版下载_Python进度栏和下载
  5. 提示未检测到 oracle,Oracle RAC [INS-40406] 未检测到现有的 Oracle Grid Infrastructure 软件...
  6. c语言成绩等级switch语句,请高手 帮忙做一道c语言题 编程,把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90):...
  7. mac mail 删除邮件服务器,如何从Mac OS X中的邮件中删除所有电子邮件 | MOS86
  8. Sublime Text 3 详细安装教程
  9. 无季节效应的非平稳序列分析(一)
  10. java markdown转word_一键将 Word 转换为 Markdown