从scrollview调用MFMailComposeViewController

时间:2014-02-09 02:32:12

标签: ios iphone objective-c email xcode5

我是iPhone开发的新手。我的应用程序有一个滚动视图控制器,可以在三个页面上捕获用户的信息。当用户完成所有信息并点击电子邮件按钮时,它应该发送一封电子邮件,但现在不会。

以下是我的代码和头文件。我的头文件没有实现MFMailComposeViewControllerDelegate,因为它实现了UIScrollViewDelegate。我认为我的问题与不实施MFMailComposeViewControllerDelegate有关。我该如何重新设计呢?

标头文件

@interface DiveEdScrollViewController : UIViewController <UIScrollViewDelegate>

致电电子邮件:

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:subjectValue];
[mc setMessageBody:emailBody isHTML:NO];
[mc setToRecipients:diveContacts];
self presentViewController:mc animated:YES completion:NULL];

1 个答案:

答案 0 :(得分:1)

您的视图控制器子类可以通过分隔这样的逗号来采用多个协议 -

@interface DiveEdScrollViewController : UIViewController <UIScrollViewDelegate, MFMailComposeViewControllerDelegate >

在你的.m中实现方法

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error

正如文件所述:

  

您对此方法的实现应该忽略邮件撰写视图。此方法的实现是可选的,但是可以预期。

在尝试显示这样的邮件编辑器之前,你应首先检查以下类方法(以确定设备是否配置为发送邮件) -

if ([MFMailComposeViewController canSendMail]) {
      [self presentViewController:mc animated:YES completion:NULL];
 }