1

我正在使用一个独立的UINavigationBar,其中一个按钮用于切换左侧的侧边菜单。它完美无瑕。独立的UINavigationBar和MFMailComposeViewController

现在我想添加一个使用MFMailComposeViewController的电子邮件反馈表单。它出现了,我可以编辑所有的字段(To,Subject,Body),但是当我想“发送”这个按钮时不会有反应。当我点击“取消”时,我注意到底层UINavigationBar按钮的功能会触发。看起来好像我的UINavigationBar在电子邮件撰写对话框的NavigationBar“上方”,即使我只看到电子邮件撰写对话框。

有没有什么办法可以确保MFMailComposeViewController在其他所有方面?

感谢

+2

你如何添加UINavigationBar,以及如何呈现邮件编辑器? – jrturton 2012-03-06 08:02:12

+0

向我们展示您用来呈现邮件作曲者的代码... – fbernardo 2012-03-06 08:54:52

+0

这是很难显示的代码。我有一个父视图,其中有一个视图被加载的子视图,然后依次启动MFMailComposeViewController。父视图具有UINavigationBar(拖放到XIB上)。用于MFMailComposeViewController代码是非常简单并且如下 - (IBAction为)btnSendEmailPressed:(ID)发送方{ MFMailComposeViewController *控制器= [[MFMailComposeViewController的alloc] INIT]; controller.mailComposeDelegate = self; [controller setToRecipients:[NSArray arrayWithObject:@“MYEMAILADDRESS”]]; – Joseph 2012-03-07 08:29:34

回答

2

我看到你设置委托self,这是很好的,但也实现了以下方法?

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

我想,取消是以某种方式处理,而不关闭组成视图控制器?

我也尝试修改下面一行:

[self presentModalViewController:controller animated:YES]; 

这样:

[self.navigationController presentModalViewController:controller animated:YES]; 

如果您使用的是导航栏,如你所说,然后尝试从您的视图控制器的呈现不用控制器。

这可能是奇怪的,就像您的视图控制器的一个奇怪的交互wantsFullscreenLayout。仔细检查你的所有笔尖连接,如果它仍然无法工作,请尝试推另一个“测试”视图控制器。它可能是你的代码或笔尖的东西,而不是MFMailComposeViewController本身。