IOS- DocumentInteraction Controllerl的使用
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];
 
}
IOS- DocumentInteraction Controllerl的使用的更多相关文章
- 【iOS功能实现】之利用UIDocumentInteractionController打开和预览文档
		
iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller.此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件.而且,从4.2开始, ...
 - iOS Document Interaction(预览和打开文档) 编程指南
		
原文:http://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/DocumentInteracti ...
 - iOS Document Interaction 编程指南
		
本文转载至 http://www.2cto.com/kf/201306/219382.html iOS支持在你的app中用其他app预览和显示文档.iOS还支持文件关联,允许其他app通过你的程序打开 ...
 - iOS可视化动态绘制连通图
		
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
 - 【疯狂造轮子-iOS】JSON转Model系列之二
		
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
 - 【疯狂造轮子-iOS】JSON转Model系列之一
		
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
 - iOS总结_UI层自我复习总结
		
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
 - iOS代码规范(OC和Swift)
		
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
 - JS调用Android、Ios原生控件
		
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
 
随机推荐
- PHP基础文件下载类的简单封装
			
1: <?php 2: /** 3: * [FileDown 公用文件下载方法] 4: * @param [type] $filePath [文件路径(绝对路径或相对路径)] 5: */ 6: ...
 - block 块函数
			
定义模块函数: <?php function smarty_block_text($args,$content,$smarty,$a) { $color=$args["color&qu ...
 - OC第六节—— 继承与类别
			
1.继承: 父类和子类的关系. 1.1 生活中的继承 父类 子类 父类 子类 ...
 - WPF:依赖属性的应用
			
依赖属性与一般属性相比,提供了对资源引用.样式.动画.数据绑定.属性值继承.元数据重载以及WPF设计器的继承支持功能的支持. 下面的这个Demo来自<葵花宝典--WPF自学手册>. 1.M ...
 - 第五章第二例题关于Vector(LRJ)
			
vector(动态数组)(粘) 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简 ...
 - Oracle 数据库1046事件
			
例子: session 2: SQL> connect test/test Connected. select * from v$mystat where rownum=1; 143 selec ...
 - BZOJ3224——Tyvj 1728 普通平衡树
			
1.题目大意:数据结构题,是treap,全都是treap比较基本的操作 2.分析:没啥思考的 #include <cstdio> #include <cstdlib> #inc ...
 - HTML5的新特性及技巧分享总结
			
原文链接:http://www.aseoe.com/show-10-645-1.html?utm_source=tuicool&utm_medium=referral 1. 新的Doctype ...
 - Android隐藏标题栏和状态栏
			
一.隐藏标题栏 //隐藏标题栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE); 二.隐藏状态栏 //隐藏状态栏 this.getWindow() ...
 - 将kindeditor在线编辑器制作成smarty插件
			
在web开发中,在线编辑器是经常要用到的功能模块,虽说配置在线编辑器没有多大难度,但是每一次编写重复的代码,总是让人感觉不爽. 本篇,就来讲解一下,如何将kindeditor制作成smarty的一个自 ...