2011-12-03 4 views
0

を私はこのような現在のウィンドウの上に追加されたのWebViewオブジェクト(aWebView)持っている -メールインタフェースは、iOSが動作していないキャンセルボタン - MFMailComposeViewControllerクラス

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

を私はサブビューでのViewController(viewcontrollerobj)を持っていますaWebView -

[webView addSubview:viewcontrollerobj.view]; 

その後、私はViewController-

[sviewcontroller sendInAppMail]; 
でsendInAppMailメソッドを呼び出しています

SendInAppMailは、次のようになります - 罰金を示してViewControllerを

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

    [self dismissModalViewControllerAnimated:YES]; 
} 

メール -

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は次のようになります。問題は、私がキャンセルを押すと削除/保存のドラフトオプションが表示され、削除/保存のいずれかをクリックした後にメールビューコントローラが消えないということです!

私はコンソールを見てみると、それは、このログメッセージを示して - 「そのスーパービューによってクリップアクションシートを提示するいくつかのコントロールはタッチに反応しない可能性がありますiPhoneにしてみてください - [UIActionSheet showFromTabBar:]。。または - [UIActionSheet showFromToolbar:]の代わりにの - [UIActionSheet showInView:]。 " 私はUIActionSheetをどこにも使用しておらず、過去に使用していないので、何を言っているのか理解できません。

私はこれを見ました - https://stackoverflow.com/a/6015957/516938 しかし、それは与えられた解決策が状況に非常に特有であるようです。

答えて

-1

これが問題であるかどうかはわかりませんが、これが私が見る最初のことです。あなたはそれの寸法が小さくなることを意味し、いずれかのビュー(aWebViewか、定義されたviewcontrollerobjから1)のいずれかがMFMailComposeViewControllerのための十分なスペースを許可していないように聞こえる得たエラーメッセージに基づいて

MFMailComposeViewControllerが必要です。実際にコンテンツを切り取っているわけではありませんので、あなたはそれを見ていますが、タッチがブロックされているので、 MFMailComposeViewControllerに届かないようになっています。

私はそれが十分明確であることを望みます - 私はここで私の考えを正しく記述するのは苦労しました。

+0

私はそのタッチをブロックするとは思わない。私が最初にキャンセルを押すと、削除/保存草案オプションが表示されるので。私はdidFinishWithResultでNSLOgステートメントを使って再度実行しました。それは全く呼び出されていないようです。理想的には、私がドラフトの削除を押すと、それが呼び出され、メールダイアログ全体が消えるはずです! – arank

+0

OMG! "mailComposeController"ではなく、 "mailComposeViewController"ではなく、間違って間違っている – arank

+0

ハハ!おっとっと。あなたが問題を発見してうれしいです。 –