2013-12-13 5 views
1
UIImage *gradientImage46 = [[UIImage imageNamed:@"navbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 


[UINavigationBar appearance] setBackgroundImage:gradientImage46 
              forBarMetrics:UIBarMetricsDefault]; 

이 항목을 사용하여 내 앱의 내비게이션 막대 모양을 사용자 정의합니다. 그러나 이것은 상태 표시 줄을 검게 보이며 아무 것도 보여주지 않습니다 ... 시간, 이동 통신사, 배터리 등이 버그입니까, 아니면이 오류가 있습니까?UINavigationBar 모양 setBackgroundImage 숨김 상태 표시 줄

이 인터페이스는 MainWindow.xib 메서드를 사용하여 탭 막대에서 실행됩니다. 첫 번째 탭은 내부에 뷰 컨트롤러가있는 탐색 컨트롤러입니다. 다른 탭은 내부에 TableView 컨트롤러가있는 탐색 컨트롤러입니다. 하나의 탭에서 테이블보기로 이동했다가 돌아 오면 상태 표시 줄이 나타납니다.

navbar.png는 320 x 44 픽셀입니다.

나는 또한 iOS7에로 아이폰 OS 6에서 내 응용 프로그램을 가져 오는이 문제가

답변

3

, 나는 이런 식으로 코드를 변경하여 해결 :

대신

[UINavigationBar appearance] setBackgroundImage:gradientImage46 
             forBarMetrics:UIBarMetricsDefault]; 

내가

-(void) viewWillAppear:(BOOL)animated { 

    [self.navigationController.navigationBar setBackgroundImage:gradientImage46 forBarMetrics:UIBarMetricsDefault]; 
} 
+0

을 사용하여 작동 ,보기 컨트롤러가 다른 NIB를 참조하고 있지만보기가 동일한 인터페이스 내에 빌드 된 경우가 아니라면 왜 작동하는지 알았 으면 좋겠다. – user717452