No iPhone 3.0, aplicativo falha ao tentar enviar uma imagem da câmera usando MessageUI

votos
1

Há uma parte do aplicativo para iPhone que eu estou desenvolvendo onde você pode enviar imagens usando o no correio app no ​​iPhone 3.0. Selecionando uma imagem do rolo da câmera funciona perfeitamente, mas quando eu tento ir a partir da câmara para o email (ou seja - a partir do UIImagePickerController ao MFMailComposeViewController), o aplicativo falha.

Este é o código para o funcionamento da câmera:

- (BOOL)startCameraPickerFromViewController:(UIViewController*)controller usingDelegate:(id<UIImagePickerControllerDelegate, UINavigationControllerDelegate>)delegateObject 
{
    if ( (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) || (delegateObject == nil) || (controller == nil)) 
        return NO;
    UIImagePickerController* picker = [[UIImagePickerController alloc] init];
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.delegate = delegateObject;
    picker.allowsImageEditing = NO;
    [controller presentModalViewController:picker animated:YES];
    return YES;
}

E este é o código para o acabamento com a câmera:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    NSLog(@Called finish picking);
    self.imageForSending = theImage;

    //   NSData *imageData = UIImageJPEGRepresentation(image, 1);

    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    [(ChannelTwoAppDelegate *) [[UIApplication sharedApplication] delegate] recoverNavigationBar];

    [self performSelector:@selector(sendEmail) withObject:nil afterDelay:0.45];
    [picker release];
}

E este é o código para enviar o e-mail:

- (void) sendEmail {

    [(ChannelTwoAppDelegate *) [[UIApplication sharedApplication] delegate] hideNavigationBar];
    if (![MFMailComposeViewController canSendMail])
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@שגיאה, @) message:NSLocalizedString(@לא ניתן לשלוח מייל ממכשיר זה, @)
                                                       delegate:self cancelButtonTitle:@OK otherButtonTitles: nil];
        [alert show];   
        [alert release];
    }
    else
    {
        MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
        controller.mailComposeDelegate = self;
        [[controller navigationBar] setTintColor:[UIColor colorWithRed:120.0/255.0 green:0 blue:0 alpha:1.0]];
        NSData *imageData = UIImageJPEGRepresentation(imageForSending, 1);
        [controller addAttachmentData:imageData mimeType:@image/jpg fileName:@storyImage.jpg];
        [controller setSubject:@];
        [controller setToRecipients:[NSArray arrayWithObject:@]];
        [self presentModalViewController:controller animated:YES];
        [controller release];
    }

}

Eu apaguei o endereço de e-mail e o assunto, uma vez que é menos relevante.

O acidente acontece em presentModalViewController do e-mail. Mais uma vez - este código exato funcionar perfeitamente ao selecionar uma imagem a partir do rolo da câmera ...

Socorro ? Venho lutando com um presente por um tempo e poderia realmente usar alguma entrada nova. Obrigado!

Publicado 08/09/2009 em 08:58
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Oi a ninguém assistindo, eu encontrei a resposta à minha pergunta. É um problema de tempo entre a apresentação de dois controladores de vista modais

Basicamente, eu já sabia que este era um problema, mas, eu não tinha colocado em uma espera longa o suficiente. A espera foi suficiente para selecionar uma imagem a partir do rolo da câmera, mas não o suficiente para voltar a partir da câmara.

[Auto performSelector: @selector (sendEmail) withObject: nil afterDelay: 0,45];

alterado para:

[Auto performSelector: @selector (sendEmail) withObject: nil afterDelay: 1,0];

Eu também adicionei um UIActivityIndicator para indicar que algo está acontecendo para o usuário.

Feliz codificação!

Respondeu 21/09/2009 em 10:16
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more