Содержимое CNContactPickerViewController переходит в строку поиска и строку состояния
Я представляю CNContactPickerViewController
(сильно ссылается на ivar):
contactsViewController = [[CNContactPickerViewController alloc] init];
contactsViewController.delegate = self;
[self presentViewController:contactsViewController animated:YES completion:nil];
Тем не менее, вот результат:
После столкновения с проблемой я попытался изменить внешний вид панели поиска (не уверен, что я должен установить, просто пытаюсь): [[UISearchBar appearanceWhenContainedInInstancesOfClasses:@[[CNContactPickerViewController class]]] setBarTintColor:[UIColor redColor]];
но это ничего не сделало.
Почему это произошло и как я могу это исправить?
ОБНОВЛЕНИЕ: я попробовал различные комбинации следующего на контроллере представления контактов:
automaticallyAdjustsScrollViewInsets
definesPresentationContext
edgesForExtendedLayout
modalPresentationStyle
modalPresentationCapturesStatusBarAppearance
Однако ничего не меняется вообще. Все они дают одинаковый результат.
2 ответа
Я столкнулся с той же проблемой на некоторых других контроллерах удаления представления тоже.
У меня был какой-то код, который устанавливал внешний вид с использованием прокси при запуске приложения, что выглядело подозрительно. Я отключил код, который устанавливает прокси внешнего вида при запуске приложения, и проблема исчезла. После расследования я узнал виновника:
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
Я использовал это для того, чтобы сделать фон панели навигации полностью прозрачным в некоторых местах, хотя это было чем-то, что осталось от старых дизайнов и не было необходимости. Я удалил линию, и проблема ушла.
UINavigationBar.appearance().isTranslucent = false
Добавьте эту строку перед тем, как представить контроллер.
Это сработало для меня!