Содержимое 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

Добавьте эту строку перед тем, как представить контроллер.

Это сработало для меня!

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