Настройка заголовка на панели навигации для ABPeoplePickerNavigationController - PullRequest
4 голосов
/ 10 февраля 2011

Я создал приложение типа AddressBook, в котором я отображаю список людей в UITableView, при выборе человека нажимается ABUnknownPersonViewController.Из этого ABUnknownPersonViewController пользователь может (используя встроенную функциональность) добавить человека в «Новый контакт» или «Существующий контакт».

Здесь моя проблема.Я использую Custom UILabel для заголовка NavigationBar во всем приложении.И я должен быть в состоянии сделать это для представлений, которые выдвигаются «Добавить новый контакт» / «Добавить в существующий контакт».

Я решил это для «Добавить новый контакт», создавкатегория для ABNewPersonViewController, но тот же подход не работает для «Добавить в существующий контакт».Я думаю, это может быть связано с тем, что это ABPersonPickerNavigationController, который выдвигается.

@implementation ABPeoplePickerNavigationController (customTitle)
-(void)viewDidLoad {
    [super viewDidLoad];    
    self.navigationBar.tintColor = [UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1];
}

Изменение цвета для tintColor NavigationBar работает нормально, но я не могу найти правильный способ доступа к названию.Справка, включающая рабочий пример, в котором вы можете изменить заголовок в ABPeoplePickerNavigationController, который выдвигается из ABUnknownPersonViewController, будет очень ценным.

Вот так выглядит категория для ABNewPersonViewController (которая работает):*

@implementation ABNewPersonViewController (customTitle)
-(void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1];
}
-(void)setTitle:(NSString *)theTitle {
    CGRect frame = CGRectMake(0, 0, 45, 45);
    UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont systemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:255.0 alpha:1];
    label.shadowOffset = CGSizeMake(1, 1);
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor colorWithRed:23/255.0 green:23/255.0 blue:23/255.0 alpha:1];
    self.navigationItem.titleView = label;
    label.text = theTitle;
    [label sizeToFit];
}

@end

1 Ответ

0 голосов
/ 10 февраля 2011

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

Пример:

UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 320 / 11)];

label.font = 16.0;

label.textColor = [UIColor blackColor];

label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];

label.backgroundColor = [UIColor clearColor];

label.textAlignment = UITextAlignmentCenter;

label.text = @"Your title";

self.navigationItem.titleView = label;

[label release];

Надеюсь, это поможет.

...