1

私はMFMailComposeViewControllerを私のアプリケーションで使用してフィードバック電子メールを作成しています。 MFMailComposeViewControllerが表示されますが、閉じることはできません。 MFMailComposeViewControllerモーダルウィンドウを開くために使用iOS:MFMailComposeViewControllerが閉じられない

方法:ボタンをクリックしたときにここで

-(IBAction) feedbackBtnClicked:(id)sender { 

    // Dismiss the Old View Controller 
    [self dismissViewControllerAnimated:NO completion:NULL]; 

    // Present the New View Controller 
    if ([MFMailComposeViewController canSendMail]) 
    { 
     MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init]; 
     mail.mailComposeDelegate = self; 
     [mail setSubject:@"Sample Subject"]; 
     [mail setMessageBody:@"Here is some main text in the email!" isHTML:NO]; 
     [mail setToRecipients:@[@"[email protected]"]]; 

     [self presentViewController:mail animated:YES completion:NULL]; 
    } 
    else 
    { 
     NSLog(@"This device cannot send email"); 
    } 
} 

は、何が起こるかです:

Sendenの(送信) - Eメールが送られますが、モーダルウィンドウは開いたままです。そのボタンを複数回クリックすると、モーダルウィンドウが閉じられずに複数のEメールが送信されます。 Abbrechen(キャンセル) - 何がMFMailComposeViewControllerは、それらのボタンをクリックした後に解雇されます確認して却下する方法

を起こりませんか?

Screenshot

+0

https://stackoverflow.com/questions/1918651/unable-to-dismiss-mfmailcomposeviewcontroller -delegate-not-called – Ren

答えて

2
あなたは MFMailComposeViewControllerDelegate方法 mailComposeController:didFinishWithResult:error:を実装し、メールビューコントローラを却下する必要が

...

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller 
       didFinishWithResult:(MessageComposeResult)result 
{ 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 
+1

はい、私はメソッドを実装し、それは動作します! –

+0

答えを受け入れることを自由に感じてください! –

関連する問題