【问题标题】:Standalone UINavigationBar and MFMailComposeViewController独立的 UINavigationBar 和 MFMailComposeViewController
【发布时间】:2012-03-01 13:59:30
【问题描述】:

我正在使用带有一个按钮的独立 UINavigationBar,它可以切换左侧的侧边菜单。它完美无缺。

现在我想使用 MFMailComposeViewController 添加电子邮件反馈表。它显示出来,我可以编辑所有字段(收件人、主题、正文),但是当我想“发送”时,按钮没有反应。当我点击“取消”时,我注意到底层 UINavigationBar 按钮的功能触发了。即使我只看到电子邮件撰写对话框,我的 UINavigationBar 似乎也位于电子邮件撰写对话框的 NavigationBar 的“上方”。

有什么方法可以确保 MFMailComposeViewController 位于其他一切之上?

谢谢

【问题讨论】:

  • 如何添加 UINavigationBar,如何呈现邮件编写器?
  • 向我们展示您用来展示邮件编写器的代码...
  • 显示代码有点困难。我有一个父视图,它有一个子视图,其中加载了一个视图,然后又启动了 MFMailComposeViewController。父视图具有 UINavigationBar(拖放到 XIB 上)。 MFMailComposeViewController 的代码非常简单,如下 - (IBAction)btnSendEmailPressed:(id)sender { MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];控制器.mailComposeDelegate = self; [控制器 setToRecipients:[NSArray arrayWithObject:@"MYEMAILADDRESS"]];
  • [控制器 setSubject:[NSString stringWithFormat:@"MYSUBJECT", [self bundleVersionNumber]]]; [控制器 setMessageBody:@"MYBODY" isHTML:NO]; if (controller) [self presentModalViewController:controller animated:YES]; [控制器释放]; }
  • 父视图上发生的所有事情是我有一个 IBAction 方法,该方法由点击 UINavigationBar 中的按钮触发。在该方法中,我执行以下操作: MyViewController *subView = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; [[子视图视图] setTag:105]; [[self contentView] addSubview:[subView view]];并且在 subViews 视图中有一个 UIButton 会触发上面的方法。

标签: objective-c uinavigationbar mfmailcomposeviewcontroller


【解决方案1】:

我看到您将委托设置为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]; 

如果您使用的是导航栏,如您所说,请尝试从您的视图控制器的 nab 控制器进行演示。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2014-06-05
    • 2016-03-24
    • 2014-05-19
    相关资源
    最近更新 更多