调出相册或者相机、单例
一、调出相册或者相机
注意:调用相机还是相册都要接受两个协议,如果不接受协议的话,当你选好了照片也不会显示在主视图上面,相机照相也不会加到相册中
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164728941-383989699.png)
1、设置一个按钮来模态出提示框,在按钮的方法中写代码
2、在按钮方法中先创建一个提醒视图
3、为创建的提醒视图添加两个事件,一个是相机,一个是相册
4、在相机中先判断设备是否存在摄像头,有的话调用系统相机。没有的话提醒用户
5、有的话就创建相机,指定数据来源来自相机,指定代理,允许编辑,最后模态弹出相机对象
6、如果没有的话在创建一个提醒视图来提醒用户没有摄像头
7、记得要把action时间添加到提醒视图上面
8、设备都会有相册,所以不用判断,内部代码与摄像头有的内部累吗类似
9、最后要推出总得提醒视图
10、在相册中,选取图片之后执行的方法
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164741941-1020107797.png)
按钮方法的实现:
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164756441-1013049182.png)
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164805284-1227062924.png)
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164858534-544127481.png)
二、单例
1、创建一个类作为单例类继承自NSObject
2、你需要保存什么类型的数据就把它声明称为属性
3、为自己创建的单例类,定义一个初始化类方法如:
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164917925-810121443.png)
4、在单例类的.m文件中设置一个单例类类型的静态变量
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164926456-117866933.png)
5、实现.h文件中自定义的初始化方法
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164932659-2104419045.png)
6、单例创建完成
单例传值:
可以在第一个页面的按钮方法中写代码:
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219164949659-161811224.png)
用单例后面的页面往前面传的时候,可以重写系统内部的方法,如即将出现,即将消失,已经出现,已经消失:
即将出现如:
![](https://images2015.cnblogs.com/blog/890519/201602/890519-20160219165003972-1697713992.png)