4

ユーザーが送信またはキャンセルした場合、完了後にアプリからメールを閉じようとしています。しかし、何らかの理由で、これは決して却下されません。私はほとんどすべてを試しました。これもログに記録したので、メソッドを却下するかどうかを確認します。そして、却下メソッドに入らないため、問題があります。

私は何を間違っていますか???

- (IBAction)sendmail:(id)sender{
    UIGraphicsBeginImageContext(self.view.frame.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData * imageData = UIImageJPEGRepresentation(image, 1.0);

    if ( [MFMailComposeViewController canSendMail] ) {
        MFMailComposeViewController * mailComposer = [[MFMailComposeViewController alloc] init];
        mailComposer.delegate = self;
        [mailComposer addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"attachment.jpg"];

        [mailComposer setSubject:@"Hello from My App!"];

        NSString *emailBody = @"Sent from My App, Still not in AppStore!";
        [mailComposer setMessageBody:emailBody isHTML:YES];

        [self presentModalViewController:mailComposer animated:YES];
    }
}

-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{ 
    [self dismissModalViewControllerAnimated:YES];

    NSLog (@"mail finished"); // NEVER REACHES THIS POINT.
}
4

3 に答える 3

4

この行を置き換えることができます:

[self dismissModalViewControllerAnimated:YES];

次の行で:

[controller dismissModalViewControllerAnimated:YES];
于 2012-01-04T14:00:58.320 に答える
3

MFMailComposeViewControllerクラスはから継承するUINavigationControllerため、そのデリゲート プロパティは、クラスのナビゲーション コントローラーの「部分」の「デリゲート」です。mailComposeDelegate特定のメール コンポーザー デリゲート メソッドを処理するには、オブジェクトをプロパティとして設定する必要があります。

mailComposer.mailComposeDelegate = self;
于 2011-12-30T14:29:04.263 に答える