简体   繁体   English

messageComposeViewController didFinishWithResult委托方法未调用

[英]messageComposeViewController didFinishWithResult delegate method not being called

I have a view controller "Paircontroller" that presents an MFMessageComposeViewController, as so: 我有一个视图控制器“ Paircontroller”,它呈现了MFMessageComposeViewController,如下所示:

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:^{
}];

this view controller's interface looks as follows: 该视图控制器的界面如下所示:

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

@end

Within the view-controller's implementation, I have defined the delegate method - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 在视图控制器的实现中,我定义了委托方法- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

as follows: 如下:

- (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:^{}];
}

However, the delegate method is not being called (breakpoint not hit, and NSLogs not being hit either). 但是,未调用委托方法(未命中断点,也未命中NSLogs)。

Can someone help me out on why this is not working? 有人可以帮我解决为什么它不起作用吗?

Thanks! 谢谢!

C C

I think the following change should work. 我认为以下更改应该有效。 MFMessageComposeViewController is a UINavigationController subclass, so in your original code you are setting UINavigationControllerDelegate to self. MFMessageComposeViewControllerUINavigationController子类,因此在原始代码中,您将UINavigationControllerDelegate设置为self。

mcontr.messageComposeDelegate = self;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM