У меня есть контроллер камеры, основанный на UIImagePickerController
:
@interface CameraController : UIImagePickerController
<UIImagePickerControllerDelegate>
// <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
}
@end
Init генерирует предупреждение о том, что UINavigationControllerDelegate
не реализовано (ожидается, так как я не хочу, чтобы мой объект был такимделегат):
- (id) init
{
if(!(self = [super init]))
return nil;
super.sourceType = UIImagePickerControllerSourceTypeCamera;
// Commenting delegat does not help
super.delegate = self;
return self;
}
Несмотря на то, что он является UIImagePickerControllerDelegate
делегатом, imagePickerController:didFinishPickingMediaWithInfo:
не вызывается .Я также проверил, что два других метода делегата также не вызываются.
Если я утверждаю, что выполняется UINavigationControllerDelegate
, imagePickerController:didFinishPickingMediaWith
вызывается , но у меня происходит сбой dismissModalViewControllerAnimated
:
- (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];
}
Я просмотрел несколько сообщений на этом контроллере представления CURSED.Ближайший UIImagePickerControllerDelegate не отвечает должным образом и iPhone - UIImagePickerControllerDelegate наследование , не помогло.
Есть идеи, что может быть на этот раз?Сразу возникают два вопроса: (1) что значит быть UINavigationControllerDelegate
с вызовом моего обратного вызова с изображением, и (2) почему этот объект не может очиститься должным образом?
Спасибозаранее