我正在app delegate中实现电子邮件编辑器。 我不知道为什么,但我收到了警告
“实例方法presentModalViewController:动画未找到”
仅在appdelegate,而我在我的另一个viewcontroller中使用相同的方法,它可以顺利运行。
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
mail.mailComposeDelegate = self;
if([MFMailComposeViewController canSendMail])
{
//Setting up the Subject, recipients, and message body.
[mail setToRecipients:[NSArray arrayWithObjects:@"abc@gmail.com",nil]];
UIImage *pic = [UIImage imageNamed:@"page0.png"];
NSData *exportData = UIImageJPEGRepresentation(pic ,1.0);
[mail addAttachmentData:exportData mimeType:@"image/jpeg" fileName:@"Picture.jpeg"];
[mail setSubject:@"dummy text"];
[mail setMessageBody:@"Please tell us what your concerns are and we will try to fix them" isHTML:NO];
//Present the mail view controller
[self presentModalViewController:mail animated:YES];
//release the mail [mail release];
}
[self presentModalViewController:mailer animated:YES];
这是警告,应用程序在到达此处时会崩溃。
任何建议。
答案 0 :(得分:3)
[self presentModalViewController:mail animated:YES];
是UIViewControllers方法。请检查您是否已从UIViewController扩展您的课程
@interface abc : UIViewController
答案 1 :(得分:1)
@NiravPatel:谢谢。你给了我线索。但在我的情况下,我不得不用“邮件”替换“邮件”。
所以,我在iOS7下用
工作了[self presentViewController:mailer animated:YES completion:nil];
答案 2 :(得分:0)
presentModalViewController是UIViewController
子类的方法,而不是appDelegate
的方法,因为它没有自己的任何视图控制器。
您可以做的是,如果您正在使用
,则将其显示给导航控制器的最后一个视图控制器答案 3 :(得分:0)
为什么要在您的app委托中实现此功能。我只是创建一个单独的视图,并在视图中放置AppDelegate正在执行的任何操作,然后在viewcontroller中实现此代码。在AppDelegate中尝试实现像PresentModalViewController这样的代码是不可能的。只需创建一个新视图并指向应用程序委托以在启动时加载该视图。
答案 4 :(得分:0)
presentModalViewController:animated:
无效,因为that's method
UIViewController
但self
此处为app delegate
。
请参阅View Controllers链接以获取更多参考资料
答案 5 :(得分:0)
这是因为在ios 6中不推荐使用presentModalViewController,因为ios 6你必须编写如下方法
[self presentViewController:mail animated:YES completion:nil];
让我知道它的工作与否...... !!!!
快乐编码!!!!!!