显示MFMailComposeViewController模式视图时出现问题

时间:2011-03-17 14:28:18

标签: iphone cocoa-touch

我在显示发送电子邮件的模式视图时遇到问题(MFMailComposeViewController)。我试图通过在初始表视图中选择一个单元格,从一个详细的视图中显示这个模态视图。我的问题是虽然MFMailComposeViewController确实显示,但我没有得到我通常使用MFMailComposeViewController视图的发送和取消按钮。我只是在导航栏中看到了详细视图的“后退”按钮。

我的详细视图是UIViewController的子类,符合MFMailComposeViewControllerDelegate,UINavigationControllerDelegate协议:

我发送电子邮件的方法是:

-(void)sendEmail {

   MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
   mailComposer.mailComposeDelegate = self;

   if ([MFMailComposeViewController canSendMail]) {

      [mailComposer setToRecipients:[NSArray arrayWithObjects:@"test@gmail.com",nil]];
      [mailComposer setSubject:@"Subjecy"];
      [mailComposer setMessageBody:@"Body" isHTML:NO];

      [self presentModalViewController:mailComposer animated:YES];
}

     [mailComposer release];
}


- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{
     [self dismissModalViewControllerAnimated:YES];

     if (result == MFMailComposeResultFailed) {
          UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message Failed" message:@"Your message failed to send" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
          [alert show];
          [alert release];
    }
}

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在iPad上显示电子邮件窗口时,我遇到了类似的问题 [self presentModalViewController:mailComposer animated:YES];

“发送”和“取消”按钮被部分切断,因为整个窗口向上移动了大约20或30个像素。奇怪的是,当主页按钮位于底部时,这只发生在纵向模式中。

解决方案是在MainWindow.XIB中将主窗口大小设置为iPad全屏 默认设置为“无”。