发送短信iPhone



我试图从我的应用程序内发送短信。我写了这段代码,但它似乎不工作。没有崩溃,没有错误日志,只是什么都没有发生(当然我试图记录canSendText,结果是1)。

- (void)viewDidLoad
{
    [super viewDidLoad];
    messageComposer = [[MFMessageComposeViewController alloc] init];
    if ([MFMessageComposeViewController canSendText]) {
        [messageComposer setBody:@"Messaggio generato da SMSTest"];
        [messageComposer setRecipients:[NSArray arrayWithObject:@"3333333333"]];
        [messageComposer setDelegate:self];
        [self presentModalViewController:messageComposer animated:YES];
    }
}
谁能告诉我我做错了什么?

问题是presentModalViewControllerviewDidLoad中不工作,因为视图已加载,但可能还没有出现在屏幕上。如果你把你的代码放在viewWillAppear:animated,这应该工作。

编辑:根据Saphrosit的评论:viewDidAppear:是一个更好的地方做这件事

我成功使用了:

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.messageComposeDelegate = self;
controller.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:controller animated:YES];

注意它是messageComposeDelegate,而不是像你那样的'delegate'。

蒂姆

当我在模拟器上尝试代码时,我得到一个UIAlert说短信不可用,因为模拟器不能发送消息。你是否检查过你的头文件是MFMessageComposeViewControllerDelegate的委托?

YourClassName : UIViewController  <MFMessageComposeViewControllerDelegate>

//试试这个…它会运行…

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
      if([MFMessageComposeViewController canSendText])
      {
          controller.body = @"Hello from Kartik";
          controller.recipients = [NSArray arrayWithObjects:@"12356478", nil];
          controller.messageComposeDelegate = self;
          [self presentModalViewController:controller animated:YES];
      }

最新更新