Я столкнулся со странной ошибкой с MFMessageComposeViewController в iOS8, которая воспроизводится только в моем собственном приложении. Это влияет на приложение прямо сейчас в App Store, созданное с помощью iOS7 SDK, работающего на iOS8, а также с iOS8 SDK на моих собственных тестовых устройствах (iPhone и iPad).
Проблема в том, что когда я вызываю MFMessageComposeViewController, он показывает мне контроллер без текстового поля или кнопки «Отправить». Я не менял свой код между iOS7 и iOS8, поэтому не знаю, почему это происходит. Сам код очень прост:
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
[picker setRecipients: @[@"5551112222"]];
[picker setBody: @"Test"];
[self presentViewController:picker animated:YES completion: ^{
NSLog(@"MFMessageComposeViewController completion handler");
}];
Вот как это выглядит:
Любые идеи о том, что я могу попробовать для обхода? Я попытался установить textField и получателей в обработчике завершения; попытался вызвать beFirstResponder на самом верхнем контроллере представления; не повезло. Опять же, это отлично работало/работает в iOS7.
РЕДАКТИРОВАТЬ:
Поэтому я нашел собственный пример кода Apple для MFMessageComposeViewController
по этой ссылке: https://developer.apple.com/library/ios/samplecode/MessageComposer/Listings/MessageComposerViewController_m.html
Когда я создаю и запускаю это приложение, MFMessageComposeViewController
отображается отлично, и предварительное заполнение номера телефона и текстовых полей также работает. Но когда я копирую их файлы в свое приложение, делаю их раскадровку своей основной раскадровкой, нажимаю кнопку «Создать SMS», и я вижу точно такую же проблему!
Что здесь происходит? Очень смущенный. Может ли быть какая-то конфигурация в моем собственном приложении, которая мешает правильному отображению составителя сообщений?