5

アプリケーションを介してメールを送信しようとしていますが、次のコードを使用しています。

        if ([MFMailComposeViewController canSendMail]) {
            MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
            controller.mailComposeDelegate = self;

            NSString *subject = @"";
            NSString *body = @"";

            [controller setSubject:subject];
            [controller setMessageBody:body isHTML:YES];

            [self presentModalViewController:controller animated:YES];

        } else {
            NSString *message = @"Error opening mail, please make sure you have an email account setup";
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops" message:message delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
            [alert show];
        }

iPhone 5で、本体がない状態で作成画面がポップアップするという奇妙なエラーが発生します(本体は上に設定されていますが)。ボックスをクリックするとカーソルが表示されないため編集できず、送信ボタンはクリックできません。画面を閉じると、次のように表示されます。

_serviceViewControllerReady:error: Error Domain=_UIViewServiceErrorDomain Code=1 "The operation couldn’t be completed. (_UIViewServiceErrorDomain error 1.)"

ただし、これをiPhone 4s、iPhone 4、およびシミュレーターでテストすると、正常に動作します。また、別のiPhone 5でテストしたところ、正常に動作しました。本体があり、メール等を送ることができます。

他に足りないものはありますか?私は自分の電話のメールに関連付けられた2つのメールアカウントを持っているので、うまくいくcanSendMailはずです...

4

1 に答える 1

13

他のアプリで作成ダイアログを使用してみてください。これを試すための別のアプリを考えていない場合は、Appleのサンプルをダウンロードしてコンパイルできます。他のアプリで動作しない場合は、デバイスを再起動してみてください。

于 2013-01-23T22:46:58.097 に答える