私は問題があります...
MFMailComposeViewController を作成すると、表示されます。
ただし、[送信] ボタンも [キャンセル] ボタンも機能しません。
私は問題があります...
MFMailComposeViewController を作成すると、表示されます。
ただし、[送信] ボタンも [キャンセル] ボタンも機能しません。
あなたはあなたのアプリケーションにこのコードを置く必要があります.
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[self dismissModalViewControllerAnimated:YES];
}
これを試してみると、送信ボタンとキャンセル ボタンが適切に機能します。
MFMailComposeViewController *controller=[[MFMailComposeViewController alloc]init];
controller.mailComposeDelegate=self;
[controller setSubject:@"Important Data"];
htmlファイルメールの場合
NSString *path=[[NSBundle mainBundle]pathForResource:@"table" ofType:@"html"];
NSFileHandle *readHandle=[NSFileHandle fileHandleForReadingAtPath:path];
htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
NSString *emailBody=[NSString stringWithFormat:@"Product Name %@ \n Company Name %@ \n Last Updated Date %@ \n desired data \n %@ ",lblProductName.text,lblCompanyName.text,lblUpdateDate.text,htmlString];
[controller setMessageBody:emailBody isHTML:YES];
[self presentModalViewController:controller animated:YES];
[controller release];
今日、Swift 3.0 がこの質問に新しい関数署名をもたらすことを発見しました。これ以前は、mailComposeController が呼び出されることさえなく、メールは (送信されましたが) そこにスタックしていました。以下に変更したところ、うまくいきました。
public func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith: MFMailComposeResult, error: Error?) {
self.dismiss(animated:true, completion: nil)
}