1

많은 분들이 iOS5에서 UINavigationBardrawRect을 (를) 대체 할 카테고리를 더 이상 만들지 못한다는 사실을 알고 계실 것입니다. 이제 실제로는 UINavigationBar의 하위 클래스를 사용하지 않고이 사용자 지정을 구현하는 좋은 방법을 보지 않고 내 MainWindow.xib의 navigationController-> navigationBar 내에 설정합니다. 그러나 모든 TTViewController에는 TTNavigationController의 고유 수퍼 클래스가 있기 때문에 TTNavigator는 navigationController을 인식하지 못합니다.Three20/iOS5에서 작동하도록 UINavigationBar를 서브 클래스 화하는 방법은 무엇입니까?

답변

3

나는 IOS 5 당신이 그 코드를 삽입 할이 방법

UIImage *image = [UIImage imageNamed:@"header.png"]; 

if([navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) { 
    //iOS 5 new UINavigationBar custom background 
    [navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault]; 
} 
else{ 
    UIImageView *imgView = [[[UIImageView alloc] initWithImage:image] autorelease]; 
    [imgView setUserInteractionEnabled:NO]; 
    [imgView setTag:TOOLBAR_TAG]; 
    [navigationBar insertSubview:imgView atIndex:0]; 
} 
+0

을 사용할 수 있습니다 지원하기위한 Three20을위한 그러나 일반적으로 그것을 해결하는 방법을 몰라? 내가 가진 각각의 컨트롤러에 대해 만들고 싶지 않다. – mateusmaso

+0

이 코드를 도우미 함수에 넣고 응용 프로그램 위임 메서드 인'code' (BOOL) 응용 프로그램에서 호출한다. (UIApplication *) application didFinishLaunchingWithOptions : (NSDictionary *) launchOptions –

+0

고마워, 방금 해결 했어. http://stackoverflow.com/questions/7772382/what-should-i-do-to-adapt-my-app-to-ios-5-0-keeping-compatibility -with-ios-4/7772647 # 7772647 – mateusmaso

관련 문제