2012-09-12 5 views
0

Quelqu'un at-il un didacticiel décent sur la façon d'implémenter le composeur de messagerie pour ios 5 par programmation ou avec des segues? La plupart des tutoriels que j'ai trouvés en ligne proviennent d'anciennes versions d'iOS. Merci!MFMailComposeViewController pour iOS 5: Didacticiel ou Exemple

+0

La mise en œuvre n'a pas beaucoup changé le cas échéant. C'est juste créer le contrôleur de vue et l'appeler modalement dans les cas les plus faciles. Fondamentalement, comme vous pousser un contrôleur modalement sans utiliser les storyboards iOS. –

Répondre

5

Vous pouvez faire quelque chose comme ceci:

if([MFMailComposeViewController canSendMail]) 
{ 
    MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init]; 
    [mailController setMailComposeDelegate:self]; 
    [mailController setSubject:@"Mail Subject!"]; 
    [mailController setMessageBody:@"Here is your message body" isHTML:NO]; 
    [mailController setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; 

    NSData *imageData = UIImageJPEGRepresentation(imageToUpload, 1.0f); 
    if(imageData.length) 
    { 
     [mailController addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"Your_Photo.jpg"]; 
     [self presentModalViewController:mailController animated:YES]; 
    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Image" message:@"The image couldn't be converted." delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Okay", nil]; 
     [alert show]; 
    } 
} 
else NSLog(@"Hah. No mail for you."); 
+0

avant de faire ce genre de choses, vous devez vérifier [MFMailComposeViewController canSendMail] sinon vous obtenez un plantage en cas de courrier non configuré –

2

Au début, vous devez ajouter à la section d'interface "MFMailComposeViewControllerDelegate".

Aussi, vous devez ajouter procédure pour obtenir une réponse après l'utilisateur tape « Envoyer bouton »

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    switch (result) { 
     case MFMailComposeResultSent: 
      NSLog(@"You sent the email."); 
      break; 
     case MFMailComposeResultSaved: 
      NSLog(@"You saved a draft of this email"); 
      break; 
     case MFMailComposeResultCancelled: 
      NSLog(@"You cancelled sending this email."); 
      break; 
     case MFMailComposeResultFailed: 
      NSLog(@"Mail failed: An error occurred when trying to compose this email"); 
      break; 
     default: 
      NSLog(@"An error occurred when trying to compose this email"); 
      break; 
    } 

    [self dismissViewControllerAnimated:YES completion:NULL]; 

} 
Questions connexes