кнопка отмены почтового интерфейса не работает ios - класс MFMailComposeViewController - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть объект webview (aWebView), который был добавлен поверх текущего окна, как это -

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

У меня есть ViewController (viewcontrollerobj), который является subView aWebView -

[webView addSubview:viewcontrollerobj.view];

Затем я вызываю метод sendInAppMail в ViewController-

[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];
}

Mail viewcontroller показывает нормально. Проблема в том, что при нажатии кнопки отмены отображается опция удаления / сохранения чертежа, а после нажатия кнопки «удалить / сохранить» почтовый контроллер не исчезает!

Когда я смотрю на консоль, она показывает это сообщение журнала - «Представление листа действий обрезано его суперпредставлением. Некоторые элементы управления могут не реагировать на прикосновения. На iPhone попробуйте - [UIActionSheet showFromTabBar:] или - [UIActionSheet showFromToolbar:] вместо - [UIActionSheet showInView:].» Я нигде не использую UIActionSheet и не использовал в прошлом, поэтому я не могу понять, что он говорит.

Я посмотрел на это - https://stackoverflow.com/a/6015957/516938 Но похоже, что данное решение очень специфично для ситуации.

1 Ответ

0 голосов
/ 03 декабря 2011

Не уверен, что это проблема, но это первое, на что я бы посмотрел.

На основании полученного вами сообщения об ошибке звучит так, будто одно из представлений (aWebView или определенное вами из viewcontrollerobj) не дает достаточно места для MFMailComposeViewController, что означает его размеры меньше, чем требуется MFMailComposeViewController. Это на самом деле не обрезка контента, поэтому вы видите его, но это блокирует прикосновения, чтобы они не доходили до MFMailComposeViewController.

Надеюсь, это достаточно ясно - мне было трудно описать мои мысли здесь правильно.

...