2009-12-26 7 views
0

J'ai une hiérarchie de vues:
compView avec deux enfants:
bgView
ObjectView.Réutiliser la UIImagePickerController.cameraOverlayView

Je passe objectView à la propriété cameraOverlayView du UIImagePickerController. Une fois l'ImagePicker terminé, je mets à jour l'image dans bgView et je souhaite continuer à afficher l'arborescence de vue, y compris l'objet objectView qui a été transmis à UIImagePickerController en tant que overlayView.

Le problème est que, après avoir appelé dismissModalViewControllerAnimated pour fermer UIImagePickerController, l'objet objectView n'apparaît pas, comme si UIImagePickerContoller le masque. J'ai vérifié dans le débogueur et il ne semble pas être alloué. Le pointeur est toujours valide. Mais la vue ne montre pas.

Des idées de ce que je pourrais faire de mal?

Merci, Eddy

Voici un peu de code pour vous montrer ce que je fais:

De 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]; 
} 

Répondre

0

[sélecteur dismissModalViewControllerAnimated: OUI];

Ce devrait être

[auto dismissModalViewControllerAnimated: OUI];

Questions connexes