Забавно, как Apple скрывает проблему подклассов за обсуждением режимов портрета / пейзажа. Я сразу перестал читать этот абзац, потому что я поддерживаю только портретный режим. Assholes.

я есть контроллер камеры на основе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) почему этот объект не может очиститься должным образом?

Заранее спасибо,

Ответы на вопрос(1)

Ваш ответ на вопрос