Повторное использование UIImagePickerController.cameraOverlayView - PullRequest
0 голосов
/ 26 декабря 2009

У меня есть иерархия просмотров:
compView с двумя детьми:
bgView
objectView.

Я передаю objectView в свойство cameraOverlayView UIImagePickerController. Как только ImagePicker будет сделан, я обновлю изображение в bgView, и я хотел бы продолжить отображать дерево представлений, включая objectView, которое было передано в UIImagePickerController как overlayView.

Проблема заключается в том, что после вызова dismissModalViewControllerAnimated для закрытия UIImagePickerController не отображается objectView, как если бы UIImagePickerContoller его скрывал. Я проверил в отладчике, и он, кажется, не был отменен. Указатель все еще действителен. Но вид не отображается.

Есть идеи, что я могу делать неправильно?

Спасибо, Eddy

Здесь немного кода, чтобы показать вам, что я делаю:

Из myViewController.m:

- (void)loadView {
 CGRect rect = self.navigationController.view.bounds;
 compView = [[UIView alloc] initWithFrame:rect];
 bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Storage/dummy_bg.png"]];

 objectView = [[PropImageView alloc] initWithImage:[UIImage imageNamed:@"Storage/rasta.png"]];

 [objectView setUserInteractionEnabled:YES];
 [objectView setMultipleTouchEnabled:YES];
 [compView addSubview:bgView];
 [compView addSubview:objectView];
 self.view = compView;
 [self placeObject];
 [objectView release];
 [bgView release];
 [compView release];

}

- (void) placeObject
{
 NSLog(@"camera button pressed");

 // make sure camera is avaialble before setting it as source
 //

 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
#if !TARGET_IPHONE_SIMULATOR
  UIImagePickerController* picker = [[UIImagePickerController alloc] init];

  picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

  picker.delegate = self;
  picker.allowsEditing = NO;
  picker.view.hidden = NO;
  picker.cameraOverlayView = objectView;
  [self presentModalViewController:picker animated:NO];
  [picker release];

#endif
 }


// from PickImageAppDelegate.m
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
 // Dismiss the image selection, hide the picker and
 [picker dismissModalViewControllerAnimated:YES];  
 bgView.image = [self rotateImage:image byOrientationFlag:UIImageOrientationRight];
}

1 Ответ

0 голосов
/ 13 ноября 2010

[средство выбора dismissModalViewControllerAnimated: YES];

Это должно быть

[self dismissModalViewControllerAnimated: YES];

...