iPhone: ¿No se invocan los métodos UIImagePickerControllerDelegate?
Tengo un controlador de cámara basado en unUIImagePickerController
:
@interface CameraController : UIImagePickerController
<UIImagePickerControllerDelegate>
// <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
}
@end
Init genera una advertencia de queUINavigationControllerDelegate
no está implementado (se espera que no quiera que mi objeto sea ese delegado):
- (id) init
{
if(!(self = [super init]))
return nil;
super.sourceType = UIImagePickerControllerSourceTypeCamera;
// Commenting delegat does not help
super.delegate = self;
return self;
}
A pesar de ser unUIImagePickerControllerDelegate
delegado,imagePickerController:didFinishPickingMediaWithInfo:
no e llamado. También verifiqué que los otros dos métodos de delegado tampoco se están llamando.
Si reclamo adhesión aUINavigationControllerDelegate
, imagePickerController:didFinishPickingMediaWith
e llamado pero me cuelgo endismissModalViewControllerAnimated
:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
ASSERT_VALID(picker);
ASSERT_VALID(info);
// Commenting does not help
[picker autorelease];
UIImage* image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
ASSERT_VALID(image);
// Image processing commented out
// super.delegate = nil;
// picker.delegate = nil;
// [self dismissModalViewControllerAnimated:YES];
// [super dismissModalViewControllerAnimated:YES];
// [self performSelector:@selector(dismissModalViewControllerAnimated:) withObject:nil afterDelay:0.0f];
// [self dismissModalViewControllerAnimated:NO];
// [super dismissModalViewControllerAnimated:NO];
[self performSelector:@selector(dismissModalViewControllerAnimated:) withObject:nil afterDelay:0.5f];
}
He visto varias publicaciones en este controlador de vista CURSED. El más cercano,UIImagePickerControllerDelegate no responde correctamente yiPhone - Herencia UIImagePickerControllerDelegate, no ayudó
¿Alguna idea de lo que podría ser esta vez? Inmediatamente me vienen a la mente dos preguntas: (1) qué significa ser unUINavigationControllerDelegate
tiene que ver con invocar mi devolución de llamada con la imagen, y (2) ¿por qué este objeto no puede limpiarse correctamente?
Gracias por adelantado