電子メールを送信するダイアログをモーダルにポップするために使用する MFMailComposeViewController が、iOS6 で機能しなくなったことに気付きました。ダイアログは引き続き表示されますが、本文を設定したり、ビューに何かを入力したりすることはできません。私にできることは、キャンセルを押すことだけです。
このクラスは MFMailComposeViewControllerDelegate インターフェイスを実装します。コードの一部を次に示します。
//h file
@interface ASEmailSender : NSObject
//m file
@implementation MyEmailSender () <MFMailComposeViewControllerDelegate>
@end
@implementation MyEmailSender
...
- (void)emailFile:(ASFile *)file inController:(UIViewController *)viewController {
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
if ([MFMailComposeViewController canSendMail]) {
mailController.mailComposeDelegate = self;
[mailController setSubject:@"my subject"];
[mailController setMessageBody:@"msg body here" isHTML:NO];
[viewController showIsLoading:YES];
self.viewController = viewController
[viewController presentModalViewController:mailController animated:YES];
}
}
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self.viewController dismissModalViewControllerAnimated:YES];
}
iOS5でうまく機能します。