-1

2番目のViewControllerをロードするルートViewControllerで構成されるiPadアプリケーションがあります。その2番目のViewController内に、を表示するボタンが1つありますMFMailComposeViewController

私の問題は次
のとおりです。シミュレータでは、これは正常に機能します。ただし、実際のデバイスでは、このボタンを押すと画面がロックされ、ユーザーによるインターフェイスの操作がすべて無効になっているように見えます

私のコードは次のとおりです。

//************** Send Email using Default IM ************************
-(void) showEmailModalView
{
    NSLog(@"Start method <ExportStatisticsController> : <showEmailModalView>  --");


    //    emailTextField.text = [emailTextField.text stringByReplacingOccurrencesOfString:@"(null)" withString:@""];
    //    subjectTextField.text = [subjectTextField.text stringByReplacingOccurrencesOfString:@"(null)" withString:@""];
    //    messageBodyTextView.text = [messageBodyTextView.text stringByReplacingOccurrencesOfString:@"(null)" withString:@""];

    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self; // &lt;- very important step if you want feedbacks on what the 
    //user did with your email sheet

    [picker setSubject:@""];

    NSArray *torec=[[NSArray alloc] initWithObjects:@"xyz@company.com", nil];
    [picker setToRecipients:torec];
    [torec release];

//------ message body ---

    NSString *body =@"";

    [picker setMessageBody:body isHTML:NO]; // depends. Mostly YES, unless you want to send it as plain text (boring)

    picker.navigationBar.barStyle = UIBarStyleBlack; // choose your style, unfortunately, Translucent colors behave quirky.
//    picker.ModalTransitionStyle = UIModalTransitionStyleCrossDissolve;

    [self presentModalViewController:picker animated:YES];
    [picker release];
    NSLog(@"End method <ExportStatisticsController> : <showEmailModalView>  --");

}

このように画面がフリーズする原因は何でしょうか。

4

1 に答える 1

0

デバイスがメールを送信するように設定されていない可能性があります。

を使用する前に、デバイスがメールを送信するように設定されていることを確認するためにMFMailComposeViewController電話する必要があります。[MFMailComposeViewController canSendMail]

picker変数をモーダル ビュー コントローラーとして提示する前に、変数が非 nil であることを確認することもおそらく良い考えです。

于 2012-07-02T17:57:38.040 に答える