24

状況は、MFMailComposeViewControllerが提示される予定だったということです。途中で提示されたのを見ましたが、却下されました。

これはエラーです:

_serviceViewControllerReady:error:Error Domain = _UIViewServiceInterfaceErrorDomain Code = 3 "操作を完了できませんでした。(_ UIViewServiceInterfaceErrorDomainエラー3.)"

これは、MFMailComposeViewControllerを提示するための私のソースコードです。

-(void) MailExecute {
    if ([MFMailComposeViewController canSendMail]) 
    {
        MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];   
        mailViewController.mailComposeDelegate = self;
        [mailViewController setSubject:NSLocalizedString(@"Check this new look", @"")];
        [mailViewController setMessageBody: @"my new look" isHTML:YES];

        [self presentModalViewController:mailViewController animated:YES];

        [mailViewController release];
    }
    else 
    {
        UIAlertView *alertInternal = [[UIAlertView alloc]
                                      initWithTitle: NSLocalizedString(@"Notification", @"")
                                      message: NSLocalizedString(@"You have not configured your e-mail client.", @"")
                                      delegate: nil
                                      cancelButtonTitle:NSLocalizedString(@"OK", @"")
                                      otherButtonTitles:nil];
        [alertInternal show];
        [alertInternal release];
    }
}

奇妙な点は、それが起こることもあれば、起こらないこともあるということです。これで私を助けてください!私はこれを解決するためにほぼ1営業日を費やしましたが、成功しませんでした。

4

9 に答える 9

3

この問題は、エラーメッセージのUIViewService参照で示されているように、リモートView Controller(別のプロセスで実行されているView Controller)を表示するときに発生する可能性があります。

リモートビューコントローラSKStoreProductViewControllerでもあるを表示するときに、この問題が発生しました。根本的な原因がわかりません。私にとってそれを引き起こしたと思われる唯一のことは、ViewControllerを繰り返し提示することでした。

SKStoreProductViewController私はメソッドの完了ブロックでこのエラーをチェックすることができましたloadProductWithParameters:completionBlock:MFMailComposeViewControllerDelegateこれに関するエラーのあるコールバックを提供しますか?このエラーをリッスンし、ユーザーにエラーメッセージを表示するだけでよい場合があります。

私たちはおそらくこれについてアップルレーダーを提出する必要があります。

于 2013-06-23T05:14:54.527 に答える
2

あなたのコードは正しいように見えます、そして述べられたように、エラーメッセージはこれがUIView適切な(MFMail特にではない)と関係があることを強く示唆しています。問題はほぼ確実にコード内のどこかにあり、トラブルシューティングが難しい場合があります。

探すべきいくつかの事柄:

  1. 他のアニメーションまたはビューコントローラの遷移/却下が同時にまたは誤って発生する(おそらくこのように
  2. もちろん、問題を解放/保持します

それでも問題が解決しない場合は、このメソッドを呼び出すView Controllerで発生している他のすべてをコメントアウトして、機能するかどうかを確認してください。

それでも機能しない場合は、コードが失敗する可能性のある最も単純なバージョンを提示して、さらにトラブルシューティングできるようにします。:)

于 2012-12-25T09:00:13.880 に答える
0

ビューコントローラを却下するメソッドviewDidDisappear:またはメソッドに何かありますか?viewWillDisappear

そうでない場合は、MFMailComposeViewControllerを提示するViewControllerのコードをさらに投稿できますか?

于 2012-12-21T13:11:49.040 に答える
0

私はこれが遅い返事であることを知っています、しかし他の誰かを助けるかもしれません。

ちょうど今同じ問題に直面しresetting the simulatorています、この同じ問題のために私のためにうまく働きます。これが役立つかどうか教えてください。

于 2013-06-23T04:58:50.063 に答える
0

MFMailComposeViewControllerをローカル変数ではなく、クラスの強力なプロパティに格納した後、自己終了動作を再現できなくなりました。

于 2014-03-14T18:41:20.747 に答える
0

私にとっての問題は、添付ファイル関数を呼び出すときの誤った引数でした。電子メールの添付ファイルでこの問題が発生している場合は、次のように、このスレッドにある解決策に従うことをお勧めします。

NSString *path = [self getDatabaseFilePath];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"application/x-sqlite3" fileName:[path lastPathComponent]];
于 2014-07-31T07:20:13.520 に答える
0

MFMailComposeViewController * mailComposer = [[MFMailComposeViewController alloc] init];

if ([MFMailComposeViewController canSendMail])
{
    mailComposer.mailComposeDelegate = self;
    [mailComposer setToRecipients:[NSArray arrayWithObject:@"support@kapsie.com"] ];
    [mailComposer setSubject:@"Kapsie App Contact Support"];
    [mailComposer setMessageBody:@"Type Your Feedback message here" isHTML:NO];
    [self presentViewController:mailComposer animated:YES completion:nil];
}

上記のコードを使用して、デバイスで確認してください。

于 2014-11-19T07:12:03.313 に答える
-1

modelViewControllerの使用はiOS6で非推奨になりました。

[self presentViewController:mailView animated:YES completion:nil];
于 2013-05-28T12:38:30.637 に答える
-1

私は同じ問題に直面し、解決策は次のとおりでした。

アプリケーションの外観に関連するコード全体を次のように削除します

[[UILabel appearance]setText:@""] 

コードに置き換えます

[[UILabel appearanceWhenContainedIn:[self class], nil] setText:@""];

現在は正常に動作しているので、アプリケーション全体の外観の変更に注意してください。ナビゲーションバーの外観などである可能性があります。

于 2014-08-01T10:07:02.070 に答える