【发布时间】:2013-11-19 08:25:49
【问题描述】:
我的应用上有一个自定义摄像头。我在相机视图上添加了一个按钮,以便用户可以根据需要从相册中选择图像。一旦他们选择了一张图片,他们就会将它裁剪成一个正方形,然后到达编辑屏幕。我遇到的问题是一旦用户裁剪图像并点击“完成”,它就会回到相机而不是进入编辑屏幕。 这是我的代码:
- (void)viewDidLoad{
[super viewDidLoad];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
//isAlbum = NO;
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
NSData *data = [def objectForKey:@"imageData"];
if([NSStringFromClass([data class]) isEqualToString:@"NSData"]){
[self performSeague];
}
// [self.view sendSubviewToBack:self.cameraView];
// Do any additional setup after loading the view, typically from a nib.
[self setupAVCapture];
[self setLatestPicture];
[_AlbumView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
[_AlbumView.layer setBorderWidth:2.0];
[overlayView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cameraOverlay.png"]]];
[self.view bringSubviewToFront:overlayView];
}
else{
[self performSeague];
}
[self performSeague] 转到 UIImagePickerController(不同的控制器)。这是它的委托代码
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];
NSData *data = [[NSData alloc]init];
data = UIImagePNGRepresentation(image);
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"imageData"];
[self performSegueWithIdentifier:@"pictureSelectedSeague" sender:self];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[self dismissViewControllerAnimated:NO completion:^{
[self performSegueWithIdentifier:@"cancelSeage" sender:self];
}];
}
在这里,如果用户取消,我继续回到相机并且它可以工作,但是当用户完成选择编辑后的图像时,而不是遵循 [self performSegueWithIdentifier:@"pictureSelectedSeague" sender:self]; 这行代码,它会关闭选择器并返回相机查看。
【问题讨论】:
标签: ios objective-c uiimagepickercontroller avfoundation