Странное поведение с компоновщиком сообщений на iOS 7

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

У меня есть контроллер представления, который представляет либо MFMessageComposeViewController или же MFMailComposeViewController, с правильной настройкой делегатов. Однако пользовательский интерфейс, который появляется в композиторе, кажется смещенным и некорректным.

Вот код для представления сообщения составителю:

if ([MFMessageComposeViewController canSendText]) {
    MFMessageComposeViewController *composer = [[MFMessageComposeViewController alloc] init];
    composer.messageComposeDelegate = self;
    composer.recipients = [NSArray arrayWithObject:[self unformattedPhoneNumber:number]];
    [self presentViewController:composer animated:YES completion:nil];
}

Довольно простые вещи. Однако, когда представлен модальный контроллер вида, он выглядит так:

Неправильное текстовое поле выбора контактов в контроллере создания сообщения

Текстовое поле выбора контактов (в котором можно вводить пользователей по имени или номеру) ненадолго появляется на черном фоне, но затем оживляется и скрывается за панелью навигации. Даже более странно, текстовое поле контакта начинается как первый респондент, так что вы все равно можете ввести его, и вот результат, когда вы начинаете искать контакты:

Печатая в контактах здесь

Я использовал компоновщик почты и сообщений много раз прежде в предыдущих приложениях, но это ошибка, которую я никогда раньше не видел. Я попытался представить VC в отдельном потоке, проверяя номер телефона, который я использую, и, кажется, ничто не меняет его. Я заметил, что если я поменяю window.backgroundColor в [UIColor whiteColor]текстовое поле контакта имеет белый фон, поэтому кажется, что эта часть контроллера представления сообщений прозрачна. У меня есть похожая проблема с составителем почты.

Кто-нибудь испытывал что-то подобное или есть какие-то мысли?

1 ответ

Решение

Ты используешь UIAppearance настроить внешний вид в вашем приложении? Похоже, что вы, так как стиль панели навигации в этом представлении составления не по умолчанию.

Это может быть вызвано настройкой некоторых представлений, используемых этими внутренними компонентами, что приводит к поломке некоторых из них. Чтобы проверить это, избавьтесь от всех ваших UIAppearance код и попробуйте еще раз, чтобы увидеть, если это все еще происходит.

Если это так, вам нужно обойти это, сузив UIAppearance звонки с appearanceWhenContainedIn: так что внутренние классы не затронуты.

Другие вопросы по тегам