MFMessageComposeController があり、iMessage 経由で画像を送信したい (私の iPad では SMS を使用できません)。
これは私のコードです:
- (void)presentMessageController {
if(![MFMessageComposeViewController canSendAttachments])
{
UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Your device doesn't support sharing photos via SMS!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[warningAlert show];
return;
}
MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
[messageController addAttachmentData:imgData typeIdentifier:(NSString *)kUTTypePNG filename:@"image.png"];
// Present message view controller on screen
[self presentViewController:messageController animated:YES completion:nil];
}
問題は[messageController addAttachmentData...]にあるようです。messageController が表示されず、代わりに空白の画面が表示され、アプリがハングアップし、1 ~ 2 秒後にデリゲートが MessageComposeResultCancelled で応答し、コンソールに次のように表示されます。
com.apple.mobilesms.compose からのフェンス バリアの待機中にタイムアウトしました
警告: プレゼンテーションまたは却下の進行中に、View Controller から却下しようとしています!
その行にコメントを付けると、messageController が表示されます (iMessage が開かれます)。
重要:
これは、iPad でテストしたときに発生しています (iOS 7.0.3 がインストールされた iPad 2 のみでテストしました)。同じコードは、iOS 7.0.3 を搭載した iPhone 5、4、4S で完全に機能します。
黒い画面が表示されると、アプリに戻る方法がありません。アプリを終了して再起動する必要があります。
誰かが同じ問題を経験していますか? 助けてください。ありがとう。