I have the same issue as the MessageComposeController mailing issue. I solved it by doing this.
You need to create an instance variable of MFMessageComposeViewController, and when you are going to present a message controller, you need to check if the instance object has already been created, then do it nil and initialize this object again. Thus, the "CKSMSComposeRemoteViewController" is confined to waiting for the fence barrier from com.apple.mobilesms.compose "will not come, and the controller will open for sure.
if ([MFMessageComposeViewController canSendText]) { if (messageComposer) { messageComposer = nil; messageComposer = [[MFMessageComposeViewController alloc]init]; } messageComposer.recipients = arrPhoneNumber; messageComposer.messageComposeDelegate = self; messageComposer.body = @"Your text"; isMessageComposeAppear = 1; [self presentViewController:messageComposer animated:YES completion:nil]; }
source share