호출 [[UINavigationBar appearance]
은 수신자 클래스의 모양 프록시를 반환합니다. addSubview:
메서드는 UI_APPEARANCE_SELECTOR
태그가 지정되어 있지 않습니다. UIAppearance의 프록시 방식에 대한 한 가지 단점은 어떤 선택기가 호환되는지를 아는 것이 어렵다는 것입니다.
이 문서에서는 좀 더 잘 설명 : http://nshipster.com/uiappearance/ 그리고 기사의 링크 https://gist.github.com/mattt/5135521는, 당신은 UINavigationBar
를 서브 클래스 화해 [[UINavigationController alloc] initWithNavigationBarClass:toolBarClass:]
를 호출해야합니다 아이폰 OS 7
에 UI_APPEARANCE_SELECTOR
로 태그하는 방법을 보여줍니다. 첫 번째 매개 변수로 새 탐색 모음 하위 클래스를 전달하고 두 번째 매개 변수로 nil을 사용하여 표준 UIToolbar
을 사용합니다. 당신의 서브 클래스에서, 당신이하는 것처럼 이미지를 추가하십시오.
다른 가능성은 내비게이션 컨트롤러의 탐색 바를 가져 와서 하위보기를 추가하는 것입니다 (예 : [self.navigationController.navigationBar addSubview:logoImage]
). 이 방법이 효과가있을 수 있지만 고유 한 하위 클래스를 만들면 확실히 유연성이 향상됩니다.
고마워. 나는 빠른 수정이 필요했고'[self.navigationController.navigationBar addSubview : logoImage]'는 완벽하게 작동했기 때문에'UINavigationBar'를 하위 클래스로 만들지 않았습니다. – Bonnie