2013-07-05 3 views
2

Я использовал MFMailComposeViewController для отправки почты другим пользователям. Когда вы нажимаете кнопку, лист сочинений открывается, и я могу ввести тип адреса, темы, тела сообщения. Но после нажатия кнопки отправки почтовая страница не закрывается.MFMailComposeViewController не уволен

код:

if ([MFMailComposeViewController canSendMail]) 
{ 
    MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
    mailer.mailComposeDelegate = self; 
    [mailer setSubject:@"My image"]; 


    UIImage *myImage = [UIImage imageNamed:@"mobiletuts-logo.png"]; 
    NSData *imageData = UIImagePNGRepresentation(myImage);   


    [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"Image"]; 
    NSString *emailBody = @"Hi, my image"; 
    [mailer setMessageBody:emailBody isHTML:NO];   

    [self presentViewController:mailer animated:YES completion:nil]; 
} 

- (void)mailComposeController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{ 
    switch (result) { 
     case MFMailComposeResultCancelled: 
      break; 
     case MFMailComposeResultSent: 
      break; 
     default: 
      break; 
    } 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
+1

Надежда U добавить 'протокол MFMailComposeViewControllerDelegate' в вашем файле .h. – HRM

+0

есть. Я добавил. Но он не работает – user2474320

+0

Ден это выглядит странно, bcoz Я не нахожу никаких других ошибок в коде. Вы проверяли, был ли вызван метод делегата? – HRM

ответ

2

К сожалению. Забудьте добавить эти строки. После того, как эти строки почта работает

-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
0

Попробуйте

[self presentModalViewController:mailer animated:YES]; 

для смещать

[self dismissModalViewControllerAnimated:YES];