2012-09-15 7 views
1

이 코드를 사용하여 내 응용 프로그램에서 탐색 모음 이미지를 사용자 정의합니다.UIPopoverController 탐색 모음 모양

UIImage *navBarTexture = [[UIImage imageNamed:@"NavBarTexture_iPad"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 
    [[UINavigationBar appearance] setBackgroundImage:navBarTexture forBarMetrics:UIBarMetricsDefault]; 
    [[UINavigationBar appearance] setBackgroundImage:navBarTexture forBarMetrics:UIBarMetricsLandscapePhone]; 

이것은 놀라운 일입니다. 그러나 UIPopoverControllers의 탐색 막대에서이 이미지를 사용할 때 약간 이상하게 보입니다. 기본 Apple 이미지는 내가 원했던 것입니다. 원래 모양을 유지하려면 어떻게해야합니까?

내가 appearanceWhenContainedIn:을 사용할 수 있다는 것을 알고 있지만 이미지로 nil을 반환하면 검은 색 공간이 생깁니다.

도움을 주시면 감사하겠습니다.

답변

2

내 마음을 넘어 처음으로 사용자 정의하기 전에 탐색 표시 줄에서 기본 이미지를 가져 오는 것입니다. 나는 그것이 효과가 있다는 것에 충격을 받았다. 또한

UINavigationBar *appearanceProxBar = [UINavigationBar appearance]; 
UIImage *defaultImage = [appearanceProxBar backgroundImageForBarMetrics:UIBarMetricsDefault]; 
[appearanceProxBar setBackgroundImage:navBarTexture forBarMetrics:UIBarMetricsDefault]; 
[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:defaultImage forBarMetrics:UIBarMetricsDefault]; 

, 당신은이 질문에 대해 2012 WWDC 볼 수 - 216 - iOS에서 고급 모양 사용자 정의 컴파일러가 경고 할 수 있도록 적절한 클래스의 인스턴스 모양 프록시를 주조의 깔끔한 트릭을했다가 인식 할 수없는 선택기 및 코드 완성도가 더 정확합니다.

+0

멋지다 매력처럼 작동합니다 .... –

+0

ios에서 MFMailComposeViewController 클래스를 사용할 수 없습니다. 이유가 있습니까? – rowwingman

+0

@rowwingman'MFMailComposeViewController'가 완전히 다른 프로세스에서 렌더링되기 때문에 작동하지 않습니다. –