MFMessageComposeViewController 上的取消按钮不显示

Posted

技术标签:

【中文标题】MFMessageComposeViewController 上的取消按钮不显示【英文标题】:Cancel button on MFMessageComposeViewController does not show up 【发布时间】:2012-09-17 20:53:52 【问题描述】:

在我的 iPhone 应用程序中,我刚刚实现了应用内短信功能。短信功能运行良好。但是在打开 MFMessageComposeViewController 后,如果用户想取消发送短信,他们没有选择。剩下的唯一选择是发送一条短信,然后只返回上一个视图。导航栏上应该有一个取消按钮,就像在电子邮件编辑器中一样。以下是我编写的具有应用内短信功能的代码行:

-(void) smsComposer
     MFMessageComposeViewController *_smsCompose = [[MFMessageComposeViewController alloc] init];
     if ([MFMessageComposeViewController canSendText]) 
         _smsCompose.body = @"SMS BODY";
         _smsCompose.messageComposeDelegate = self;
         [self presentModalViewController:_smsCompose animated:YES];
    

我有什么遗漏的吗?

提前致谢, 电脑

【问题讨论】:

【参考方案1】:

试试这个....

在.h文件中

#import <MessageUI/MFMessageComposeViewController.h>

@interface TestViewController : UIViewController <MFMessageComposeViewControllerDelegate>

然后按钮点击方法

-(void)buttonPressed:(UIButton *)button

[self sendSMS:@"Body of SMS..." recipientList:[NSArray arrayWithObjects:@"+1-111-222-3333", @"111-333-4444", nil]];

MFMessageComposeViewController 创建 SMS 内容和另一种处理用户与 SMS 对话框交互的方法。

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

 -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    
      [self dismissModalViewControllerAnimated:YES];

      if (result == MessageComposeResultCancelled)
        NSLog(@"Message cancelled")
      else if (result == MessageComposeResultSent)
        NSLog(@"Message sent")  
      else 
        NSLog(@"Message failed")  
    

请记住:您不能从模拟器中发送 SMS 消息。在设备上测试。

【讨论】:

以上是关于MFMessageComposeViewController 上的取消按钮不显示的主要内容,如果未能解决你的问题,请参考以下文章