使用MFMailComposeViewController时遇到的问题

4
我正在尝试设置应用内的电子邮件功能。我参考了这篇文章进行操作,但在构建时出现了以下警告: enter image description here 然后当我运行它时,出现了错误: enter image description here 我想知道是否是我将代码放错了位置。请注意,我已经放置了

标签。
#import <MessageUI/MessageUI.h>

在头文件中。

感谢您的帮助!


编辑1

似乎问题出在我的ViewController设置上。事实上,我所有的UI代码都在一个单独的对象中,如下所示。这使得我难以理解哪些代码放在哪里。有什么建议吗? enter image description here

4个回答

8
MessageUI 框架添加到您的框架文件夹中,并在您的 viewController.h 中导入这些类:
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>

@interface *your controller* : UIViewController <MFMailComposeViewControllerDelegate>

3

看起来你的SpeakHereController不是一个UIViewController。

因此它无法找到用于呈现和解除modalViewController的方法。 另外,你需要实现MFMailComposeViewControllerDelegate,并将其添加到你的视图控制器中。


我认为这就是了。你能详细说明一下吗?应该怎样正确地做呢? - Eric Brotto
在您的SpeakHereController.h文件中,应该像这样写:@interface SpeakHereController : UIViewController <MFMailComposeViewControllerDelegate> - rckoenes

1

这里是代码

#import <UIKit/UIKit.h>
#import <MessageUI/MFMailComposeViewController.h> 

@interface tempsend : UIViewController<MFMailComposeViewControllerDelegate>

//.m文件代码

MFMailComposeViewController *picmail = [[MFMailComposeViewController alloc] init];  
picmail.mailComposeDelegate = self;
[picmail setSubject:@"Exporting DDT file"];

// Set up recipients
[picmail setToRecipients:[NSArray arrayWithArray:aray_emailid]];

[picmail setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picmail animated:YES];
[picmail release];

敬礼, Shyam


-1

在SpeakHereController.h文件中添加MFMailComposeViewControllerDelegate

并使用

[controlle presentModalViewController:controller animated:YES];

而不是

[self presentModalViewController:controller animated:YES];

同样适用于

[controlle dismissModalViewControllerAnimated:YES];

而不是

[self dismissModalViewControllerAnimated:YES];


“Add MFMComposeViewControllerDelegate to SpeakHereController.h file”是什么意思?这是一个方法吗? - Eric Brotto
这是一个委托类,包含默认方法定义。 - Chetan Bhalara
1
抱歉,presentModalViewController不是UIView的方法。 - rckoenes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接