2012-03-01 1 views
1

Я пытаюсь показать MFMessageComposeViewController со следующим кодом:MFMessageComposeViewController первый Alloc занимает несколько секунд

controller = [[MFMessageComposeViewController alloc] init]; 

if([MFMessageComposeViewController canSendText]) 
{ 
    controller.body = [NSString stringWithFormat:@"%@%@%@", itemString, amountString, callTimeString]; 
    controller.recipients = [NSArray arrayWithObject:@"12345678"]; 
    controller.messageComposeDelegate = self; 
    [self presentModalViewController:controller animated:YES]; 
} 

Проблема заключается в том, когда я нажимаю кнопку, чтобы открыть MFMessageComposeViewController, то Alloc занимает всего несколько секунд. Я попытался переместить выделенную строку в мой метод viewDidLoad, однако это просто переместит проблему, и я в конечном итоге жду несколько секунд для загрузки представления.

Есть ли способ ускорить выделение и отображение моего MFMessageComposeViewController или использовать метод делегата или что-то еще?

Спасибо.

+0

Это для sms, у вас есть jailbroken ваше устройство? –

+0

Это для sms на unjailbroken, ios5, iphone4S – danielbeard

ответ

0

Хорошо, что вы делаете, кажется, правильно. Вы ничего не делаете неправильно. Проверьте это - Can't set recipients of MFMessageComposeViewController? & ссылку прикрепленную в ответе

+0

Вот что я подумал. Даже используя точный код из этого учебника, я получаю задержку при первом распределении MFMessageComposeViewController до 4 секунд. – danielbeard

0

у меня была аналогичная проблема, проверить мой ответ здесь: I need a callback when MFMessegeComposeViewController finally loads

Для меня это было не Alloc слишком долго, это был presentModalViewController из MFMessageComposeViewController, который блокирует код Apple в потоке пользовательского интерфейса, поэтому не может его затушевывать, кроме того, что вы бросаете свой собственный просмотр прогресса.