2015-09-21 4 views
2

Ранее на iOS7 я тестировал свой модуль SMS, и он работал хорошо. После обновления версии iOS я заметил, что модуль SMS имеет некоторые проблемы.MFMessageComposeViewController не возвращается в приложение после отправки сообщения ios9

В моем файле .h

#import <MessageUI/MFMessageComposeViewController.h> 

@interface ViewController : UIViewController<UITextFieldDelegate,MFMessageComposeViewControllerDelegate> 

В моей .m файл

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients 
{ 
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = bodyOfMessage; 
     controller.recipients = recipients; 
     controller.messageComposeDelegate = self; 
     [self presentModalViewController:controller animated:YES]; 
    } 
} 

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{ 
    if (result == MessageComposeResultCancelled){ 
     NSLog(@"Message cancelled"); 
    } 
    else if (result == MessageComposeResultSent){ 
     NSLog(@"Message sent"); 
    } 
    else{ 
     NSLog(@"Message failed"); 
    } 
} 

После я нажимаю отправить, в журнале есть шоу «Сообщение отправлено», но вид все еще находится на сообщение экран. Я понятия не имею, почему он не вернется к моему заявлению.

Нужна помощь, чтобы найти проблему, почему она не вернется к моему приложению.

Заранее спасибо.

+0

распускать контроллер в вашем сделал отделка делегата messageComposeViewController : didFinishWithResult: – TamilKing

ответ

1

Кажется, вы не увольняетесь mailcomposer после того, как оно представлено. Вы должны отклонить представленную MFMessageComposeViewController следующим способом:

-(void)mailComposeController:(MFMailComposeViewController *)controller 
     didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    if (result == MessageComposeResultCancelled){ 
     NSLog(@"Message cancelled"); 
    } 
    else if (result == MessageComposeResultSent){ 
     NSLog(@"Message sent"); 
    } 
    else{ 
     NSLog(@"Message failed"); 
    } 
    [self dismissViewControllerAnimated:YES completion:nil]; //<---- This line 
} 

Кроме того, - (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated является устаревшим, так как IOS 6. Использование - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion вместо так:

[self presentViewController:mailComposer animated:YES completion:nil]; 
+0

Спасибо за помощь. Я решаю проблему. –

Смежные вопросы