2012-04-23 4 views
1

添付してメールを送信したい。私のアプリでは、メール機能のために別のクラスを作成し、rootViewControllerにはボタンがあります電子メール。それをクリックすると、私のメール機能が呼び出される必要がありますが、それはしません。Root ViewControllerでメール機能を呼び出すにはどうすればいいですか?

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


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

その後、私はこのようなメール機能を使用できないことを知りました。いずれも、コントローラを使用してインスタンスメソッドを呼び出し、私はあなたがMFMailViewControllerのオブジェクトを作成している電子メールのIT]ボタンをクリックしたときに、この

+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

ありがとうDudeそれは正常に動作します –

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]; 

} 
関連する問題