cod*_*ind 4 iphone objective-c uiimagepickercontroller ios
如何保存UIImagePickerController相机图像以便我可以发送到CreateViewController场景UIImageView?
HomeViewController(场景1)有一个按钮,可以加载UIImagePickerController并返回来自摄像机的图像.CreateViewController(场景2)空了UIImageView.
HomeViewController.h
#import "CreateViewController.h"
@interface HomeViewController : UIViewController
<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@property (strong, nonatomic) UIImagePickerController *imagePicker;
@property(nonatomic, retain) UIImage *myImage;
- (IBAction)cameraImage:(id)sender;
Run Code Online (Sandbox Code Playgroud)
HomeViewController.m
@implementation HomeViewController
@synthesize imagePicker, myImage;
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ( [segue.identifier isEqualToString:@"create"]) {
CreateViewController *cvc = [segue destinationViewController];
UIImage *image = myImage;
cvc.myImage = image;
}
}
//Camera button action
- (IBAction)cameraImage:(id)sender{
//UIImagePickerController space in memory
imagePicker = [[UIImagePickerController alloc]init];
//Set the delegate
imagePicker.delegate = self;
//Set the sourceType
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//Show Image Picker UI
[self presentViewController:imagePicker animated:YES completion:^{}];
}
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo: (NSDictionary *)info {
self.myImage = [info objectForKey:UIImagePickerControllerOriginalImage];
[self dismissViewControllerAnimated:YES completion:^{}];
[self performSegueWithIdentifier:@"create" sender:self];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:^{}];
}
Run Code Online (Sandbox Code Playgroud)
CreateViewController.h
@property (strong, nonatomic) IBOutlet UIImageView *bgImage;
@property(nonatomic, retain) UIImage *myImage;
Run Code Online (Sandbox Code Playgroud)
CreateViewController.m
@implementation CreateViewController
@synthesize bgImage, myImage;
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *image = myImage;
[bgImage setImage:image];
}
Run Code Online (Sandbox Code Playgroud)
在此下载示例代码; http://code-blind.com/ios6-camera-picture-to-another-scenes-uiimageview/
如果以编程方式实例化控制器,则不必使用segue.
实现这一目标的最简单方法就是这样
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage * pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
DisplayViewController * controller = [DisplayViewController new];
controller.imageView.image = pickedImage;
[self.navigationController pushViewController:controller animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
如果你想使用segue,你需要手动调用它
[self performSegueWithIdentifier:@"your-segue-name" sender:self];
Run Code Online (Sandbox Code Playgroud)
然后你可以在你的HomeViewController中使用一个ivar存储pickedImage并传递给你destinationViewController.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
DisplayViewController * controller = (DisplayViewController *)segue.destinationViewController;
controller.imageView.image = _pickedImage;
}
Run Code Online (Sandbox Code Playgroud)
这里_pickedImage是您存储的图像已经经过挑选的伊娃.
| 归档时间: |
|
| 查看次数: |
13989 次 |
| 最近记录: |