2011-02-10 2 views
4

사람이 ABUnknownPersonViewController가 선택되면 UITableView에 사람 목록을 표시하는 응용 프로그램의 AddressBook 종류를 만들었습니다. 이 ABUnknownPersonViewController에서 사용자는 (기본 제공 기능을 사용하여) 사람을 "새 연락처"또는 "기존 연락처"에 추가 할 수 있습니다.ABPeoplePickerNavigationController에 대한 NavigationBar의 제목 사용자 정의

여기 내 문제가있는 곳입니다. 내 응용 프로그램에서 NavigationBar 제목에 대한 사용자 지정 UILabel을 사용하고 있습니다. 그리고 나는 "Add New Contact"/ "Add to Existing Contact"에 의해 푸시 된 뷰에 대해이 작업을 수행 할 수 있어야합니다.

"ABNewPersonViewController"카테고리를 생성하여 "Add New Contact"에 대해이를 해결했지만 "기존 연락처에 추가"와 동일한 접근 방식이 작동하지 않습니다. 이것은 푸시 된 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]; 
} 

NavigationBar의 tintColor에 대한 색상 변경은 정상적으로 작동하지만 제목에 액세스 할 수있는 적절한 방법을 찾을 수 없습니다. ABUnknownPersonViewController에서 푸시 된 ABPeoplePickerNavigationController에서 제목을 변경할 수있는 작업 예제가 포함 된 도움말은 많은 도움이 될 것입니다. 나는이 목적을 위해 사용자 정의 레이블을 사용

@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

:

이 같은 (일) ABNewPersonViewController의 범주 모습입니다. 이 코드로 글꼴 크기를 변경할 수도 있습니다.

예 :이 도움이

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]; 

희망.

+0

그래, 내 텍스트를 설명하려고 할 때처럼 내 사용자 지정 UILabel을 만듭니다. "내 응용 프로그램 전체에서 NavigationBar 제목에 사용자 지정 UILabel을 사용하고 있습니다." 내 문제는 실제로 UILabel을 NavigationBar의 제목으로 설정하기 위해 범주에서 제목에 액세스 할 수 없다는 것입니다. – oehman

+0

나는 일을 더 분명히하기 위해 내 포스트를 편집했다. :) – oehman