2012-04-23 4 views
1

첨부 파일이있는 메일을 보내려고합니다. 내 애플 리케이션에서 나는 메일 기능을위한 별도의 클래스를 만들었고 rootViewController에 버튼이있다. 이메일 It. 그것을 클릭하면 내 메일 기능이 호출되어야하지만 그렇지 않습니다.Root ViewController에서 메일 기능을 호출하려면 어떻게해야합니까?

MFMailViewController *controller = [[MFMailViewController alloc] initWithNibName:"MFMailViewController" bundle:nil];     


[[self navigationController] pushViewController:viewController animated:YES]; 
[viewController release]; 

그 후 나는 이처럼 메일 기능을 사용할 수 없다는 것을 알게되었습니다. 하나는 컨트롤러를 사용하여 인스턴스 방법이라고 나 당신이 MFMailViewController의 객체를 생성하는 이메일이 버튼을 클릭하면이

+0

modalcontroller로 부르시겠습니까? – mChopsey

답변

0

아니요 MFMailViewController, 해당 MFMailComposeViewController입니다. 자세한 내용을 보려면 Apple reference을 클릭하십시오. 여기

는 그냥 방법 ..... 이 코드를 정의하지만, 처음의 ViewController 대표의 .H 파일에서 대리자를 정의하는 메일을 보낼 샘플 코드

if([MFMailComposeViewController canSendMail]) { 
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init]; 
if(mailController!=nil) { 
     mailController.mailComposeDelegate = self; 
      [mailController setSubject:urSubject]; 
      [mailController setMessageBody:urBody isHTML:NO]; 
      [mailController addAttachmentData:urData mimeType:type fileName:urfileName]; 
} 
[self presentModalViewController:mailController animated:YES]; 
[mailController release]; 
} 
+0

덕분에 잘 작동합니다. –

0

사전 또는

NSArray를

같은 몇 가지 매개 변수를 MFMailViewController 클래스의 인스턴스 메서드를 만들기 찾을 수 있습니다 매개 변수 또는 정보를 전달하십시오. 다음보기로 이동합니다.

#import <Foundation/Foundation.h> 

@interface의 MFMailViewController : NSObject의

{} 

- (무효) sendEmail (NSMutableDictionary *) withData;

@end 
#import "MFMailViewController.h" 

@implementation MFMailViewController 

-(void)sendEmail:(NSMutableDictionary*)withData; 
{ 
    //definition goes here................. 

} 
@end 

MFMailViewController *controller = [[MFMailViewController alloc] initWithNibName:"MFMailViewController" bundle:nil];     

[controller sendEmail:withData]; 
[[self navigationController] pushViewController:viewController animated:YES]; 
[viewController release]; 
0

간단합니다 MFMailComposeViewControllerDelegate 다음 버튼을 클릭하는 방법이 코드를 작성 ......

 MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; 
     controller.mailComposeDelegate = self; 
     [controller setToRecipients:@"Recipients Name"]; 
     [controller setSubject:@"your subject"]; 
     [controller setMessageBody:@"Your Text Here for Mail" isHTML:YES]; 
     if (controller) 
     { 
      [self presentModalViewController:controller animated:YES]; 
      [controller release]; 
     } 

다음은 yourViewController.m 파일에 울부 짖는 소리 mailComposerDelegate 방법을 붙여 넣을 수 있습니다 .....

- (void)mailComposeController:(MFMailComposeViewController*)controller 
      didFinishWithResult:(MFMailComposeResult)result 
         error:(NSError*)error; 
{ 
    if (result == MFMailComposeResultSent) { 
     NSLog(@"Mail Sent"); 
    } 

    [self dismissModalViewControllerAnimated:YES]; 

} 
관련 문제