Отправить смс iPhone - PullRequest
       22

Отправить смс iPhone

0 голосов
/ 29 ноября 2011

Я пытался отправить SMS из моего приложения.Я написал этот кусок кода, но, похоже, не работает.Никаких сбоев, никаких ошибок, просто ничего не происходит (конечно, я попытался записать 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];
    }
}

Может кто-нибудь объяснить мне, что я делаю неправильно?

Ответы [ 4 ]

5 голосов
/ 29 ноября 2011

Проблема в том, что presentModalViewController не работает в viewDidLoad, поскольку представление загружено, но может даже не отображаться на экране. Если вы введете свой код в viewWillAppear:animated, это должно сработать.

Редактировать: Согласно комментарию Сафросита: viewDidAppear: - еще лучшее место для этого.

0 голосов
/ 29 ноября 2011

// попробуем это ... он запустится ..

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];
      }
0 голосов
/ 29 ноября 2011

Когда я пробую код на симуляторе, я получаю сообщение UIAlert о том, что текстовые сообщения недоступны, потому что симулятор не может отправлять сообщения. Вы проверили, что ваш заголовочный файл является делегатом MFMessageComposeViewControllerDelegate?

YourClassName : UIViewController  <MFMessageComposeViewControllerDelegate>
0 голосов
/ 29 ноября 2011

Я успешно использую это:

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

Обратите внимание, что это messageComposeDelegate, а не «делегат», как вы.

Тим

...