Изменить цвет панели навигации CNContactPickerViewController iOS

У меня есть контроллер домашнего просмотра, показанный на изображении 1.

Изображение 1

Когда пользователь нажимает кнопку панели, другой контроллер представления представляется с использованием метода presentViewController:. Это CNContactPickerViewController, который полностью родной (показан на изображении 2).

Изображение 2

Как изменить цвет UINavigationBar для этого контроллера? Я пробовал подход ниже, но не работал:

  1. Изменен цвет панели навигации в Appdelegate.
  2. Изменен цвет панели навигации в глобальном файле, который наследуется контроллером.

Я использовал код ниже:

 [self.navigationBar setTranslucent:NO];

    [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarBackground"]
                       forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

    [self.navigationBar setShadowImage:[UIImage new]];
    [self.navigationBar setTintColor:kBlackColor];
    [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor blackColor], NSForegroundColorAttributeName,nil]];

Кроме того, когда я запускаю приложение на устройстве iPhone 6S iOS 9.3.2, CNContactPickerViewController не отображает кнопку группы на панели навигации, как показано в симуляторе.

Как изменить цвет Cancel button on CNContactPickerViewController?

У меня есть ответ на вопрос выше. Теперь предстоит решить как изменить цвет раздела tableview, а также ячейки в CNContactPickerViewController.


person Jayprakash Dubey    schedule 26.05.2016    source источник


Ответы (1)


Наконец, я получил его после множества исследований и разработок. Я использовал приведенный ниже код для создания панели навигации CNContactPickerViewController красного цвета.

    [[UINavigationBar appearance] setTranslucent:NO];
    [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:213/255.0f green:38/255.0f blue:46/255.0f alpha:1.0]];
    [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                  [UIColor whiteColor], NSForegroundColorAttributeName,nil]];
    [[UINavigationBar appearance] setTintColor:kWhiteColor];
person Jayprakash Dubey    schedule 27.05.2016
comment
Это будет работать нормально, но предупреждаю, что это изменит эти свойства для ВСЕХ экземпляров UINavigationBar, а не только для CNContactPickerViewController. - person user1898712; 11.09.2017