#import "ViewController.h"
@interface ViewController ()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)didPictureClick:(id)sender {
// UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件。
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"请选择" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"相机",@"相册", nil];
[myActionSheet setActionSheetStyle:UIActionSheetStyleBlackOpaque];//设置样式
[myActionSheet showInView:[self.view window]];
}
#pragma mark - UIActionSheetDelegate的实现
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1) {
@try {
//其中,sourceType 指定了 几种 图片的来源:
//UIImagePickerControllerSourceTypePhotoLibrary:表示显示所有的照片
//UIImagePickerControllerSourceTypeCamera:表示从摄像头选取照片
//UIImagePickerControllerSourceTypeSavedPhotosAlbum:表示仅仅从相册中选取照片
//为了区分是否支持所需引用的sourceType,一般要用到下面这个函数,以便确定sourceType
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) {
UIImagePickerController *imgPC = [[UIImagePickerController alloc] init];
[imgPC setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[imgPC.navigationBar setBarStyle:UIBarStyleBlack];
imgPC.delegate = self;
imgPC.allowsEditing = YES;
// imgPC
// [self presentModalViewController:imgPC animated:YES];
[self presentViewController:imgPC animated:YES completion:nil];
}
else
{
NSLog(@"不可用!");
}
}
@catch (NSException *exception) {
NSLog(@"不可用!");
}
}
if (buttonIndex == 0) {
@try {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imgPc = [[UIImagePickerController alloc] init];
[imgPc setSourceType:UIImagePickerControllerSourceTypeCamera];
[imgPc.navigationBar setBarStyle:UIBarStyleBlack];
imgPc.delegate = self;
imgPc.allowsEditing = YES;
// [self presentModalViewController:imgPc animated:YES];
[self presentViewController:imgPc animated:YES completion:nil];
}
else
{
NSLog(@"相机不可用!");
}
}
@catch (NSException *exception) {
NSLog(@"相机不可用!");
}
}
}
#pragma mark - UIImagePickerControllerDelegate的实现
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = info[UIImagePickerControllerEditedImage];//获得编辑过的图片
if (!image) {
image = info[UIImagePickerControllerOriginalImage];//如果是 来自照相机的image,那么先保存
}
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
@interface ViewController ()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)didPictureClick:(id)sender {
// UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件。
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"请选择" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"相机",@"相册", nil];
[myActionSheet setActionSheetStyle:UIActionSheetStyleBlackOpaque];//设置样式
[myActionSheet showInView:[self.view window]];
}
#pragma mark - UIActionSheetDelegate的实现
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1) {
@try {
//其中,sourceType 指定了 几种 图片的来源:
//UIImagePickerControllerSourceTypePhotoLibrary:表示显示所有的照片
//UIImagePickerControllerSourceTypeCamera:表示从摄像头选取照片
//UIImagePickerControllerSourceTypeSavedPhotosAlbum:表示仅仅从相册中选取照片
//为了区分是否支持所需引用的sourceType,一般要用到下面这个函数,以便确定sourceType
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) {
UIImagePickerController *imgPC = [[UIImagePickerController alloc] init];
[imgPC setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[imgPC.navigationBar setBarStyle:UIBarStyleBlack];
imgPC.delegate = self;
imgPC.allowsEditing = YES;
// imgPC
// [self presentModalViewController:imgPC animated:YES];
[self presentViewController:imgPC animated:YES completion:nil];
}
else
{
NSLog(@"不可用!");
}
}
@catch (NSException *exception) {
NSLog(@"不可用!");
}
}
if (buttonIndex == 0) {
@try {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imgPc = [[UIImagePickerController alloc] init];
[imgPc setSourceType:UIImagePickerControllerSourceTypeCamera];
[imgPc.navigationBar setBarStyle:UIBarStyleBlack];
imgPc.delegate = self;
imgPc.allowsEditing = YES;
// [self presentModalViewController:imgPc animated:YES];
[self presentViewController:imgPc animated:YES completion:nil];
}
else
{
NSLog(@"相机不可用!");
}
}
@catch (NSException *exception) {
NSLog(@"相机不可用!");
}
}
}
#pragma mark - UIImagePickerControllerDelegate的实现
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = info[UIImagePickerControllerEditedImage];//获得编辑过的图片
if (!image) {
image = info[UIImagePickerControllerOriginalImage];//如果是 来自照相机的image,那么先保存
}
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end