Странное поведение с компоновщиком сообщений на 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:
так что внутренние классы не затронуты.