Как запустить MFMessageComposeViewController

У меня есть этот код, который запускает 15-секундный таймер задержки перед отправкой SMS:

timer = [NSTimer scheduledTimerWithTimeInterval:15.0 target:self selector:@selector(sendMessage) userInfo:nil repeats:NO];

Этот код переходит к методу с именем waitScreen, который отображает контроллер представления с индикатором активности и меткой, сообщающей пользователю, что установлен 15-секундный таймер. После 15-секундного таймера это представление закрывается (см. код ниже), а затем я хочу запустить представление MFMessageComposeViewController с телом пользователя и получателем уже на месте. Из-за того, что iOS не может автоматически отправлять SMS, пользователю необходимо нажать «Отправить», чтобы отправить SMS-сообщение.

Это мой метод sendMessage:

- (void)sendMessage {
[self dismissModalViewControllerAnimated:YES];

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText]){
    controller.body = messageField.text;
    controller.recipients = [NSArray arrayWithObjects:contactNumber.text,nil];
    controller.messageComposeDelegate = self;

    [self presentModalViewController:controller animated:YES];
}

}

messageField — это UITextField, где пользователь вводит SMS-сообщение, а contactNumber — это номер контакта из адресной книги.

Мой вопрос, почему мой MFMessageComposeViewController не запускается? Есть ли лучший способ сделать это? Спасибо!


person jaytrixz    schedule 02.11.2011    source источник
comment
Пытались ли вы добавить/удалить свой waitView из/в self.view вместо того, чтобы представлять его в модальном режиме?.. Я думаю, проблема в том, что когда вы вызываете уволить себя, вы собираетесь освободить это представление.. иначе вам нужно позвонить отклонить в waitView не в представлении, которое его вызывает.   -  person Mat    schedule 02.11.2011
comment
Ваш ответ немного расплывчатый, но я понимаю его фрагменты. Попробую это. Спасибо Мэт!   -  person jaytrixz    schedule 03.11.2011
comment
Пробовал, пока ничего не получилось. То же самое.   -  person jaytrixz    schedule 03.11.2011


Ответы (1)


Это работает, если вы измените свою первую строку на

[self dismissModalViewControllerAnimated:NO];
person Daniel Broad    schedule 02.11.2011
comment
Тот же результат, если бы я сделал это. Просто не оживляет. - person jaytrixz; 03.11.2011