【问题标题】:mail interface cancel button not working ios - MFMailComposeViewController class邮件界面取消按钮不起作用 ios - MFMailComposeViewController 类
【发布时间】:2011-12-03 10:21:18
【问题描述】:

我有一个像这样添加到当前窗口顶部的 webview 对象 (aWebView) -

UIWindow *webWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 20, 320,460)];
[webWindow addSubview:aWebView];
[webWindow makeKeyAndVisible];

我有一个 ViewController (viewcontrollerobj),它是 aWebView 的子视图 -

[webView addSubview:viewcontrollerobj.view];

然后我在 ViewController 中调用 sendInAppMail 方法-

[sviewcontroller sendInAppMail];

SendInAppMail 看起来像这样 -

    MFMailComposeViewController *mailController = [[[MFMailComposeViewController alloc] init] autorelease];
    if([MFMailComposeViewController canSendMail])
    {
        [mailController setMessageBody:@"hello" isHTML:NO];
        [mailController setSubject:@"subject"];
        mailController.mailComposeDelegate = self;  
        [self presentModalViewController:mailController animated:YES];
        [mailController release];
    }

didFinishWithResult 看起来像这样 -

- (void)mailComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    switch (result) {
        case MFMailComposeResultCancelled:
            break;
        case MFMailComposeResultSent:
            break;
        default:
            break;
    }

    [self dismissModalViewControllerAnimated:YES];
}

邮件视图控制器显示正常。问题是,当我点击取消时,它会显示删除/保存草稿选项,并且在单击删除/保存后,邮件视图控制器不会消失!

当我查看控制台时,它会显示此日志消息 - “呈现由其超级视图剪辑的操作表。某些控件可能不会响应触摸。在 iPhone 上尝试 -[UIActionSheet showFromTabBar:] 或 -[UIActionSheet showFromToolbar:] 而不是 -[UIActionSheet showInView:]。” 我没有在任何地方使用 UIActionSheet,过去也没有使用过,所以我无法理解它在说什么。

我看过这个 - https://stackoverflow.com/a/6015957/516938 但似乎给出的解决方案是针对特定情况的。

【问题讨论】:

    标签: ios uiviewcontroller uiwebview


    【解决方案1】:

    不确定这是不是问题,但这是我首先要看的。

    根据您收到的错误消息,这听起来像是其中一个视图(您定义的 aWebView 或来自 viewcontrollerobj 的视图)没有为 MFMailComposeViewController 提供足够的空间,这意味着它的尺寸小于MFMailComposeViewController 的要求。它实际上并没有剪裁内容,所以你会看到它,但它会阻止触摸,因此它们不会到达MFMailComposeViewController

    我希望这足够清楚 - 我很难正确地描述我的想法。

    【讨论】:

    • 我不认为它会阻止触摸。因为当我第一次点击取消时,它会显示删除/保存草稿选项。我在 didFinishWithResult 中使用 NSLOg 语句再次运行它,似乎根本没有调用它。理想情况下,当我点击删除草稿时,它应该被调用并且整个邮件对话框应该消失!
    • 天啊!愚蠢地误认为它的“mailComposeController”而不是“mailComposeViewController”
    • 哈哈!哎呀。很高兴您发现了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多