UIDocumentPickerViewController和UIDocumentInteractionController
UIDocumentPickerViewController和UIDocumentInteractionController
UIDocumentPickerViewController
补充一下,UIDocumentPickerModeOpen有点像readonly的模式,可以获取到NSURL,但是NSData无法通过NSURL获取真实的数据,建议优先使用UIDocumentPickerModeImport
重点要了解UIDocumentPickerViewController在初始化的时候inMode的四种模式:
- UIDocumentPickerModeImport: Import从提供者那里获得文件并拷贝到我们的host app。最经典的应用场景是在内容创建类应用中的使用。例如,像keynote、PowerPoint这样的演示制作应用,希望导入图片,视频,以及音频。它们希望拷贝一份这些数据以此保证它们随时可用。
- UIDocumentPickerModeOpen: 和import一样,open同样从文件提供者那里获得数据并导入我们的host app,只是不同的是,这些数据没有被拷贝一份至我们的host app,数据还在原处。例如,你或许在音乐播放器、视频播放器,再或者图像编辑器中使用该方式。
- UIDocumentPickerModeExportToService: Export使我们的host app可以保存文件至其它提供者。例如,这些提供者可能是常用的像Dropbox、iCloud Drive这样的云存储系统。host app可以通过export保存文件到提供者的存储空间。在接下来的编辑器例子中,当用户完成编辑,他们可以导出文件,然后稍后可以在其它app中打开这些文件。
- UIDocumentPickerModeMoveToService: 除了host app不会持有一份儿文件的拷贝,其它Moving和export差不多。这或许是最不常用的操作,因为大多数iOS apps不是为了抛弃它们的数据才创建的。
UIDocumentInteractionController
这个类相对简单一点,重点是要实现在delegate里面的3个方法, 这样视图控制器才能显示出来:
#pragma mark - UIDocumentInteractionControllerDelegate
-(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{
return self;
}
-(UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController *)controller{
return self.view;
}
-(CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController *)controller{
return self.view.bounds;
}
UTI
苹果支持的文件类型使用UTI标识
在info.plist上配置app里面支持读取查看支持的文件类型
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>com.myApp.surpportFiles</string>
<key>LSItemContentTypes</key>
<array>
<string>public.image</string>
<string>public.audio</string>
<string>public.movie</string>
<string>public.data</string>
<string>public.text</string>
<string>public.archive</string>
<string>public.item</string>
<string>public.source-code</string>
</array>
</dict>
</array>
UIDocumentPickerViewController和UIDocumentInteractionController的更多相关文章
- 【iOS功能实现】之利用UIDocumentInteractionController打开和预览文档
iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller.此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件.而且,从4.2开始, ...
- 下载文件 ,调用系统的方法(UIDocumentInteractionController) 查看
- UIDocumentInteractionController 文件预览
//创建并从底部弹出来 - (void)viewDidLoad { [super viewDidLoad]; [self setupDocumentControllerWithURL:fileURL] ...
- ios开发之--UIDocumentInteractionController的使用(实现更多分享服务)
最近在做项目的时候,碰到这样一个需求,就是本地生成pdf文件,然后本地打开,经过测试发现,pdf文件是无法保存到相册里面的,只能存到手机里面,鉴于苹果的存储机制,需要取出来,进行本地展示,可以直接传到 ...
- iOS利用UIDocumentInteractionController和Quick Look打开或预览文档
在App的开发过程中,我们避免不了要打开软件中的文件,例如:Excel文件,Word文件,图片文件等不同格式的文件或者想要通过第三方的App来打开这些文件,那么我们就要用到UIDocumentInte ...
- Xcode 7.0 SDK(Software Development Kit) 及 Sandbox(沙盒) 存放路径
1. Sandbox(沙盒) 存放路径 我的硬盘/Users/wj121/Library/Developer/CoreSimulator/Devices/879D7E35-BE50-4620-97E1 ...
- [New learn] UIKit 框架类
NSObject NSObject is the root class of most Objective-C class hierarchies. NSDataAsset The NSDataAss ...
- iOS-关于使用其他应用打开本应用文档
简介:本片文章是对官方文档的翻译,非常的感谢文章的翻译者:颐和园 官方地址:Document Interaction Programming Topics for iOS 文章的介绍内容: ***** ...
- 【Swift 2.1】共享文件操作小结(iOS 8 +)
前言 适用于 iOS 8 + 本地共享文件列表 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs ...
随机推荐
- 三、统一威胁管理(UTM)
简介 统一威胁管理(Unified Threat Management),简称UTM. 2004年9月,IDC首度提出“统一威胁管理”的概念,即将防病毒.入侵检测和防火墙安全设备划归统一威胁管理(Un ...
- IntelliJ IDEA 2017.3-----导入jar包
1.选择jar包 2.右键选择 3.点击ok
- BigInteger和BigDecimal的基本用法
整型大数 BigInteger: import java.math.BigInteger; import java.util.Scanner; public class Main { public s ...
- Java传(1)
____________________________去告诉世界,我已经横空出世了! 你好丫,世界! public class HelloWorld{ public static void main ...
- openshift3.10集群部署
简介 openshift是基于k8s的开源容器云. 要求 系统环境:CentOS 7.5 搭建一个master节点,两个node节点 注意: openshift3 依赖docker的版本为1.13.1 ...
- 1+x证书Web 前端开发初级——理论考试(试卷1)
1+x证书Web 前端开发初级——理论考试(试卷1) 一.单选题(每小题 2 分,共 30 小题,共 60 分) 1.HTML 语言中,设置表格中文字与边框距离的标签是() A.<table b ...
- opencv:全局阈值
图像的二值化分割,最重要的就是计算阈值 阈值的计算方法很多,基本分为两类,全局阈值与自适应阈值 OTSU.Triangle #include <opencv2/opencv.hpp> #i ...
- 左偏树 (bzoj 2809)
Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都有且仅有一个上级. ...
- Vue.js 学习入门:介绍及安装
Vue.js 是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 ...
- springboot无法查询到后台的数据
问题:springbooot中,整合mybatis时,在IUserMapper接口中, @Select("select * from user where name like '%李%'&q ...