2013-07-05 10 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

희망을 기각. – HRM

+0

예. 나는 덧붙였다. 하지만 작동하지 않습니다. – user2474320

+0

Den 이상하게 보입니다. bcoz 코드에서 다른 실수를 찾지 못했습니다. 위임 메서드가 호출되었는지 여부를 확인 했습니까? – HRM

답변

2

죄송합니다. 이 줄을 추가하지 마십시오. 이 라인은 작업 메일 후

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

[self presentModalViewController:mailer animated:YES]; 

을 시도하기위한 u는 당신의 .H 파일에`MFMailComposeViewControllerDelegate` 프로토콜을 추가

[self dismissModalViewControllerAnimated:YES];