MFMessageComposeViewController上的取消按钮不会显示

Pra*_*bey 0 iphone objective-c ios5

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

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

有什么我想念的吗?

提前谢谢,PC

Wol*_*ine 6

试试这个....

在.h文件中

#import <MessageUI/MFMessageComposeViewController.h>
Run Code Online (Sandbox Code Playgroud)

@interface TestViewController : UIViewController <MFMessageComposeViewControllerDelegate>
Run Code Online (Sandbox Code Playgroud)

然后按下Click Click方法

-(void)buttonPressed:(UIButton *)button
{
[self sendSMS:@"Body of SMS..." recipientList:[NSArray arrayWithObjects:@"+1-111-222-3333", @"111-333-4444", nil]];
}
Run Code Online (Sandbox Code Playgroud)

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];
    }    
 }
Run Code Online (Sandbox Code Playgroud)

 -(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")  
    }
Run Code Online (Sandbox Code Playgroud)

请记住:您无法从模拟器中发送短信.在设备上测试.