私も同じ問題を抱えてる。私は作曲家を強く参照しました
@property (nonatomic, strong, retain) MFMessageComposeViewController *messageComposer;
次に、所有者クラスがこのメソッドを呼び出します。
-(void)sendSMSFromController:(UIViewController*)controller
{
self.messageComposer = [MFMessageComposeViewController new];
if([MFMessageComposeViewController canSendText]) {
[_messageComposer setBody:_body];
[_messageComposer setRecipients:[NSArray arrayWithObjects:_recipient, nil]];
[_messageComposer setMessageComposeDelegate:self];
[controller presentViewController:_messageComposer animated:NO completion:NULL];
}
}
Composer はすぐに表示されますが、ゆっくりと消えます。以下で終了します。
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result) {
case MessageComposeResultCancelled:
NSLog(@"Message sending cancelled.");
break;
case MessageComposeResultFailed:
NSLog(@"Message sending failed.");
break;
case MessageComposeResultSent:
NSLog(@"Message sent.");
default:
break;
}
[controller dismissViewControllerAnimated:YES completion:^(){
self.messageComposer = nil;
}];
}
デバイスを再起動すると、明らかに動作します。再起動する前に(無効な受信者を送信して MessageService をいじった後)、失敗しました。