IOS-笔记19(Model Segue,Camera,File System)
来源:互联网 发布:淘宝墨猴一只多少元 编辑:程序博客网 时间:2024/05/21 07:15
Model Segue
它是Segue的一种,它会拿下整个屏幕的控制权。开始时并没有什么特殊的,选择种类并准备即可,返回时则需要调用:
presentingViewController?.dismissViewControllerAnimated(true, completion: nil)这里的presentingViewController指的是呈现当前View的View,如果当前View还呈现了其他View,则会一同消失。
如果你使用Unwind方法跳转则不需要调用这个方法。
Camera
使用UIImagePickerController,这是UInavigationController的子类。首先还是要查询对应的资源是否可用,picker的可用资源有相册和相机。然后要设置要获取的媒体类型,视频或图像,kUTTypeImage,这个值来自于一个叫MobileCoreServices的古老的包,要记得引。接下来设置代理为自己。这里要注意的是,代理类不仅要声明实现UIImagePickerControllerDelegate,还要声明实现UINavigationControllerDelegate
if UIImagePickerController.isSourceTypeAvailable(.Camera) { let picker = UIImagePickerController() picker.sourceType = .Camera picker.mediaTypes = [kUTTypeImage] picker.delegate = self picker.allowsEditing = true presentViewController(picker, animated: true, completion: nil) }接下来实现代理方法:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { var image = info[UIImagePickerControllerEditedImage] as? UIImage if image == nil { image = info[UIImagePickerControllerOriginalImage] as? UIImage } imageView.image = image makeRoomForImage() dismissViewControllerAnimated(true, completion: nil) } func imagePickerControllerDidCancel(picker: UIImagePickerController) { dismissViewControllerAnimated(true, completion: nil) }
ALAssetsLibrary:
这个可以帮助你把拍到的超片存到相册。
Persistence(将数据永久的储存在闪存中):
Archiving:比较少用的方式,不过StoryBoard就是这么储存的。
SQLite:以数据库的方式储存
File System:每个应用有一个自己的沙盒,你的应用可以访问的文件都在这个沙盒里,具体每个文件夹你有什么权限,你可以查阅NSSearchPathDirectory。使用NSFileManager来访问FileSystem,它是线程安全的,只要你不在这个线程初始化,却在另一个线程使用就行。有一个默认的NSFileManager对象,这个只能在主线程使用,在其他线程使用则需要在那个线程里新建。
//获取fileManager let fileManager = NSFileManager() //得到根目录URL if let docsDir = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as? NSURL { //通过唯一的时间来得到唯一的文件名 let uniqueFileName = NSDate.timeIntervalSinceReferenceDate() //在根URL后添加文件相对路径 let url = docsDir.URLByAppendingPathComponent("\(uniqueFileName).jpg") //写数据到这个URL,atomically的意思是原子性:写入文件后,将原文件替换,再删除原文件,这样保证文件系统里的文件都是完整的 if imageData.writeToURL(url, atomically: true) { pointEditable?.smallImageURL = url pointEditable?.bigImageURL = url } }
resourceValuesForKeys可以获得文件的创建时间之类的属性,传入不同的Key即可。
Core Data:这个很重要,有空好好研究研究。
- IOS-笔记19(Model Segue,Camera,File System)
- IOS学习笔记---segue
- IOS-笔记15(Unwind Segue,Action Sheets,Alert,NSTimer)
- iOS segue
- ios-Segue
- IOS File System
- iOS file system
- 相机模型(Camera Model)
- Google File System笔记
- IOS开发学习笔记(1) - 不通过storyboard segue 来切换视图
- Camera Model
- iOS开发笔记——利用segue传参
- iOS开发笔记——利用segue传参
- iOS开发笔记——利用segue传参
- The Goole File System笔记
- Google File System学习笔记
- Google File System阅读笔记
- Google File System学习笔记
- Android开发中,9-patch (九宫格)图片作为背景带来的问题
- win7旗舰版卸载“获取Windows10”升级助手
- 测试入门
- 使用rsync进行同步
- TableLayout的使用
- IOS-笔记19(Model Segue,Camera,File System)
- UNIX环境高级编程中的apue.h和apueerror.h
- 机器人与机器视觉呈爆发式增长
- POJ1450
- 切换项目的分支
- 数值类型
- Docker 初识-搭建tomcat
- 如何通过做T降低解套
- Unable to open liblaunch.dylib. Try reinstalling Xcode or the simulator runtime.