私はUIAlertController
です。 OKをクリックすると、MFMailComposeViewController
と表示されます。電子メール作成画面のキャンセルボタンをタップしてMFMailComposeViewController
を却下します。閉じるときにMFMailComposeViewController
のデリゲートメソッドが正しく呼び出されます。 MFMailComposeViewController
は正常に終了します。直後に同じ機能(フロー)をもう一度試してみると私は警戒を得ておらず、むしろ誤り以下になっています。理由は何でしょうか?私は、stackoverflowで利用可能なソリューションのほとんどを試してみました。それでも同じ問題が発生しています。 0x13890beb0> < MFMailComposeViewController上:< UIAlertController提示するUIAlertControllerが最初に表示され、次にMFMailComposeViewControllerが表示されます。初めての作品です
試み!0x1371ef000>ビューウィンドウ階層ではありませんが**
私はalertcontrollerとMFMailComposeViewController
を提示するself presentViewController
を使用しています。
サンプルコードはここにある:正確に問題を引き起こしているものを言うのは難しい
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(nullable NSError *)error{
[controller dismissViewControllerAnimated:YES completion: nil];
}
UIAlertController * alertController= [UIAlertController alertControllerWithTitle:@"Title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"Ok"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[alertController dismissViewControllerAnimated:YES completion:nil];
MFMailComposeViewController *mailComposerVC = [MFMailComposeViewController new];
mailComposerVC.mailComposeDelegate = self;
if ([MFMailComposeViewController canSendMail]) {
[self presentViewController:(MFMailComposeViewController*)mailComposerVC animated: true completion: nil];
}
}];
UIAlertAction* cancel = [UIAlertAction
actionWithTitle:@"Cancel"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[alertController dismissViewControllerAnimated:YES completion:nil];
}];
[alertController addAction:ok];
[alertController addAction:cancel];
[self presentViewController:alertController animated:false completion:nil];
あなたの質問は、該当するコードを更新します。 – rmaddy
いくつかのコードを投稿してください。 SwiftまたはObjective-Cを使用しているかどうかを判断してください – FelixSFD
http://stackoverflow.com/a/25864182/988769 – Kreiri