2

iPad アプリからメールを送信するために次のコードを使用しました。メール コンポーザーが開きますが、送信ボタンを押しても何も起こりません。何か案は?

        MFMailComposeViewController *mailComposer;
        mailComposer  = [[MFMailComposeViewController alloc] init];
        mailComposer.mailComposeDelegate = self;
        [mailComposer setModalPresentationStyle:UIModalPresentationFormSheet];
        [mailComposer setSubject:@"your custom subject"];
        [mailComposer setMessageBody:@"your custom body content" isHTML:NO];
        [self presentViewController:mailComposer animated:YES completion:nil];

どうもありがとう

4

2 に答える 2

2

まず第一に、シミュレーターから実際にメールを送信することはできないため、メッセージを受信しないという事実は正常です。却下の部分では、ドキュメントの関連部分は次のとおりです。

デリゲート オブジェクトは、操作が完了したときにピッカーを閉じる責任があります。これは、MFMailComposeViewController オブジェクトのインターフェイスの表示を担当する親 View Controller のDismissModalViewControllerAnimated:メソッドを使用して 行います。

後は、delegate メソッドを実装してコントローラーを破棄するだけです。おそらくこのようなもの:

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{
    // Handle any errors here & check for controller's result as well
    [self dismissModalViewControllerAnimated:YES];
}

また、最初に次のようにコントローラーをモーダルに提示する方が簡単です (< iOS6):

[self presentModalViewController:mailComposer animated:YES];

そして、ここにMFMailComposeResult期待すべき定数があります。

于 2013-01-05T17:57:49.553 に答える
1

シミュレーターを使用してメールを送信することはできません。iPhoneで試してみてください。この機能を使用するには、iPhone でメール アカウントを構成する必要もあります。

if ([MFMailComposeViewController canSendMail]) を使用して、メールを送信できるかどうかを確認できます。

于 2013-01-05T21:35:07.523 に答える