我是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];
答案 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];
}