MFMailComposeViewController无法在横向中工作

时间:2011-09-22 15:42:42

标签: objective-c uiview uiviewcontroller mfmailcomposeviewcontroller

我的应用使用横向模式。当我尝试在我的其他肖像模式应用程序中集成总是对我有用的MFMailComposeViewController时,我遇到了邮件控制器根本没有出现的问题。我在研究过程中发现了很多信息,我试图覆盖MFMailComposeViewController,就像它在这里建议的那样:

mfmailcomposeviewcontroller in landscape

然而,它仍然以相同的方式行事。简而言之,我的基于视图的应用程序具有主控制器A和其他控制器B和C. B在A顶部打开,它有MFMailComposeViewController,在运行时隐藏B并返回A。

这很奇怪,但我觉得它与视图层次结构有关,我需要添加MFMailComposeViewController。覆盖时(如上面的链接),此代码无法解决我的问题:

MailCompose *controller = [[MailCompose alloc] init];
controller.mailComposeDelegate = self;

我感谢任何其他建议。

以下是我正在使用的代码:

if ([MFMailComposeViewController canSendMail]){

    MailCompose *picker = [[MailCompose alloc]init];


    //MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];//was before I subclassed
    picker.mailComposeDelegate = self;

    [picker setToRecipients:[NSArray arrayWithObject:@"info@site.com"]];
    [picker setSubject:@"Feedback"];

    [picker setMessageBody:emailBody isHTML:YES];

    picker.navigationBar.barStyle = UIBarStyleBlack;

    [self presentModalViewController:picker animated:YES];
    [picker release];
}

1 个答案:

答案 0 :(得分:0)

你调用作曲家的代码看起来很有用,但你已经知道了。所以它只能是这样的:

  • 永远不会调用代码
  • 设备未发送邮件

(可以使用调试器检查这两个)

  • 你是从错误的地方展示这个视图,例如从一个已经呈现模态视图控制器的视图(不知道这是否可能?)
  • 您已在警报或状态栏级别向应用添加了一个新窗口,这会在作曲家出现时使其模糊不清。

一组猜测,我希望其中一个适合你!