2013-07-03 1 views
2

UIAppearance을 사용하여 내 앱에서 모두 NavigationBar의 backgroundImage를 설정합니다.UIPrintInteractionController 및 UIAppearance의 navigationBar

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"background.png"] forBarMetrics:UIBarMetricsDefault]; 

동시에 인쇄 기능을 구현하기 위해 UIPrintInteractionController을 사용합니다.

문제는 인쇄 대화 상자가 탐색 모음의 전체 모양 설정을 사용한다는 것입니다. 은 다음과 같습니다

enter image description here

을이 대화 상자에서이 적절하지, 난 여기에 어떤 배경 이미지를 사용하여 시스템 대화 상자를 가지고 있지 싶습니다. UIPrintInteractionController does not conform to the UIAppearanceContainer protocol :

나는이 메시지와 [UINavigationBar appearanceWhenContainedIn:[UIPrintInteractionController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 하지만, 응용 프로그램 충돌을 사용했습니다.

두 번째 아이디어는 UIPrintInteractionController에 대해 navigationBar의 backgroundImage를 nil로 설정하는 것입니다 (예 : 초기화 될 때 또는 표시되기 전에 (대리자 메서드에서)). 그러나 UIPrintInteractionController에는 navigationBar를 가져 오는 public 메서드가없고 게다가 NSObject에서 상속받습니다.

내비게이션 막대에서 UIPrintInteractionController의 배경 이미지를 없애는 방법이 있습니까?

+0

하여 사용해보십시오 : <- 언어 :! 목표 - C -> [UINavigationBar appearanceWhenContainedIn을 : [UIPopoverController 클래스], 아니요] –

+0

@ robert.wijas 고마워, 작동합니다. 대답으로 게시하면 받아 들일 것입니다. – Anastasia

+0

나는 그것을했다. 그러나 누군가 그것을 설명으로 바꿨다. 다시 답변으로 게시하십시오. –

답변

2

당신은 UIAppearance 봉쇄 지원하는이 컨트롤러가 UIPopoverController에 제시되어 있다는 사실을 이용할 수 있습니다

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] 
+0

시도했지만 작동하지 않습니다. [[UINavigationBar appearanceWhenContainedIn : [UIPopoverController class], nil] setTintColor : [UIColor blueColor]]; –

+0

그것은 나를 위해 일했습니다 .. 감사합니다. –