#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 остается «Все контакты»