iPhone — средство выбора пользователей, возможно ли изменить цвет панели навигации и текст?

#iphone #background-color #abpeoplepickerview #peoplepicker

#iPhone #background-color #abpeoplepickerview #средство выбора людей

Вопрос:

Небольшой вопрос для iPhone: в настоящее время я использую средство выбора пользователей в своем приложении, я использую черную панель навигации в своем приложении, но средство выбора пользователей отображается синим цветом по умолчанию.

Я пытался:

 picker.navigationBar.backgroundColor = [UIColor blackColor];
  

Однако он по-прежнему отображается синим цветом.

Возможно ли изменить цвет панели навигации в средстве выбора пользователей? Или он всегда будет синим, поскольку это системный модальный вид?

Редактировать:

Для цвета используется следующее:

 picker.navigationBar.tintColor = [UIColor blackColor];
  

Однако с помощью:

 picker.title = @"MyText";
  

или

 picker.navigationItem.title=@"MyText";
  

или

 self.title=@"MyText";
  

Не работает, заголовок всегда остается как «Все контакты»

Ответ №1:

Цвет UINavigationBar контролируется его tintColor свойством.

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

В вашей категории, в init методе, измените self.tintColor .

Поскольку категории изменяют все экземпляры класса в вашем приложении, будет сложнее изменить текст с помощью категории. Вместо этого попробуйте установить title целевого вида.

Комментарии:

1. вы знаете, принимает ли Apple Store приложения с измененным цветом адресной книги?

2. @Fran — Я думаю, что они сделали, но я не уверен. На данный момент вы больше не должны использовать подобные категории, поскольку iOS 5 добавляет новые способы настройки элементов управления пользовательского интерфейса.

Ответ №2:

 - (void)showNewPersonViewController {
ABNewPersonViewController *picker1 = [[ABNewPersonViewController alloc] init];
picker1.newPersonViewDelegate = self;

UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:picker1];
navigation.navigationBar.tintColor = [UIColor brownColor];
[self presentModalViewController:navigation animated:YES];

[picker1 release];
[navigation release];   
}
  

Ответ №3:

для изменения цвета UINavigationController

 self.navigationController.navigationBar.tintColor=[UIColor colorWithRed:42/256.0 green:60/256.0 blue:80/256.0 alpha:1.0];
  

Изменение текста UINavigationController

 self.text = @"My New text" ;
  

Комментарии:

1. Спасибо, tintcolor работает, но self.text — нет, заголовок в peoplepicker остается «Все контакты»