2015-02-09 2 views
1

У меня есть контроллер представления «Paircontroller», который представляет MFMessageComposeViewController, а так:метод делегата messageComposeViewController didFinishWithResult не называется

NSArray *recpts = [[NSArray alloc]initWithObjects:phone.text, nil]; 

MFMessageComposeViewController *mcontr = [[MFMessageComposeViewController alloc]init]; 
mcontr.body = @"Sign up for our app!"; 
mcontr.recipients = recpts; 
mcontr.subject = @"hey!"; 
mcontr.delegate = self; 
[self presentViewController:mcontr animated:YES completion:^{ 
}]; 

интерфейс этой точки зрения контроллера выглядит следующим образом:

@interface PairViewController : UIViewController<UITextFieldDelegate,CustomIOS7AlertViewDelegate, UINavigationControllerDelegate, MFMessageComposeViewControllerDelegate> 

@end 

В пределах view-controller, я определил метод делегирования - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

следующим образом:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{ 
    switch (result) { 
     case MessageComposeResultCancelled: 
      NSLog(@"Cancelled"); 
      break; 
     case MessageComposeResultFailed: 
      NSLog(@"unknown error sending m"); 
      break; 
     case MessageComposeResultSent: 
      NSLog(@"Message sent successfully"); 

      break; 
     default: 
      break; 
    } 
    [self dismissViewControllerAnimated:YES completion:^{}]; 
} 

Однако метод делегата не вызывается (контрольная точка не попала, и NSLogs не попал ни один).

Может кто-нибудь помочь мне, почему это не работает?

Спасибо!

C

+2

Этот композитор сообщений уволен после отправки сообщения? –

ответ

8

Я думаю, что следующие изменения должны сработать. MFMessageComposeViewController - это подкласс UINavigationController, поэтому в вашем исходном коде вы устанавливаете UINavigationControllerDelegate на себя.

mcontr.messageComposeDelegate = self; 
+0

Это правильный ответ (проголосовали) –

+0

Спасибо, это работает! Спасибо, Габблер! :) – user2011985

+0

Добро пожаловать. – gabbler

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