2013-05-22 2 views
2

MFMailComposeViewController 클래스와 같이 OS에서 제공하는 UI 요소를 사용하지 않는 경우 모양 프록시가 유용합니다. 이러한 이유로 탐색 바의 바 버튼 항목을 사용자 정의해야하는데, 뒤로 버튼입니다.특정 뒤로 버튼의 제목 속성 사용자 정의

무엇이 문제인가? 뒤로 버튼의 제목 속성을 수정할 때 문제가되는 것 같습니다. 꽤 많은 비트가 customizing the back button에 대해 작성되었지만, 외관 버튼 (: 외관 프록시 사용하지 않고)의 제목 속성 (텍스트 색상, 그림자 색상 등)을 수정하는 방법에 대한 정보를 찾지 못하는 것 같습니다.

무엇을 시도 했습니까? 아래와 같이 backBarButtonItem 속성의 제목 속성을 설정하십시오. 자식 또는 부모보기 컨트롤러에서이 작업을 수행하는 것은 중요하지 않습니다. 이것은 leftBarButtonItem과`rightBarButtonItem '항목에서 잘 작동하는데, 이는 나 혼란 스럽습니다. 물론

[self.navigationItem.backBarButtonItem setTitleTextAttributes:titleAttributes forState:UIControlStateNormal]; 

는 외관 프록시를 사용하는 것은 (아래 참조)뿐만 아니라 잘 동작하지만, 상술 한 바와 같이, 이것은 OS가 제공하는 내비게이션 바 엉망.

[[UIBarButtonItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal]; 
+0

문제는의'backBarButtonItem' 속성 자체가'nil'입니다! 따라서 메시지를 전달해도 아무런 효과가 없습니다. @ βhargavḯ가 지적했듯이, 이것은 문서와 일치합니다. 그래서, 'appearance' API를 사용하지 않고, 코드에서 원하는 커스터마이징을 가진'UIBarButtonItem' 인스턴스를 생성하고 대신 뒤로 버튼으로 설정할 수 있습니다. – trss

답변

2

UIBarButtonItem이 특정보기 계층 구조 내에있는 경우에만 모양을 타겟팅 할 수 있습니다. 그래서 당신은 UINavigationController의 서브 클래스를 만들 수, MyNavigationController 말과 수행

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [MyNavigationController class], nil] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];

+0

이것은 'appearance'API와 결합하여 가장 쉬운 접근 방법 인 것 같습니다. –

1

나는 뒤로 버튼의 제목 특성 (텍스트 색상, 그림자 색상 등) 수정에 대한 정보를 찾을 수 없습니다 - 물론 당신은 찾을 수 없습니다.

으로 당신이 대신 재산 (사용자 정의 제목이나 이미지) 사용자 정의 바 버튼 항목을 지정할 수 있습니다 뒤로 버튼의 사용자 정의 이미지 또는 제목을 지정하려면 UINavigationItem Class Reference

당 . 바 버튼 항목을 구성 할 때 사용자 정의보기를 지정하지 마십시오. 탐색 항목은 백 바 버튼의 사용자 정의보기를 무시합니다.

관련 문제