2

이 문제로 인해 하루 이상 절름발이졌습니다. UINavigationBar의 높이를 수정해야합니다.UINavigationBar의 높이를 변경하는 방법

UINavigationController는 AppDelegate 에서처럼 생성됩니다.

self.navigationController = [[UINavigationController alloc] initWithRootViewController:mainController]; 
[self.window addSubview:self.navigationController.view]; 
[self.window makeKeyAndVisible]; 

네비게이션 바에 WILL 변화의 높이와 I 부가 경우 스틱 [self.navigationController.navigationBar setFrame : NEWFRAME] 다음과 같은 코드에 viewDidAppear. 그러나이

- (void)viewWilAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    CGRect newFrame = CGRectMake(0, 0, 320, 100); 
    [self.navigationController.navigationBar setFrame:newFrame] 
} 

, 나는이 방법으로 그것을 할 경우, 당신은 실제로 프레임이 두 번째 분할에 100 픽셀 높이로 원래 44px에서 스냅 볼 수있는 매우 성가신 뷰로드.

나는 추가 해봤 [네비게이션 바 setFrame :]의 viewDidLoad, rootViewController의 viewWillAppear와 내가 UINavigationController가 개시 직후에는 AppDelegate에. 이 작품들 중 어느 것도.

UINavigationBar 범주의 drawRect : (CGRect) rect 메서드를 재정의하여 아래 코드를 사용하여 배경색을 검정색으로 검정색으로 만들었지 만 문제와 관련이 없다고 생각합니다. .

[[UIColor blackColor] set]; 
CGContextFillRect(UIGraphicsGetCurrentContext(), rect); 

누구나 최선의 방법을 알고 있습니까?

답변

1

"더 큰 컨트롤 집합을 제공해야하거나 탐색 기능을 사용할 필요가없는 경우 탐색 모음 대신 도구 모음을 사용하십시오." - 내비게이션 막대/가이드 라인의 iOS Human Interface Guidelines에서

+4

실제로 탐색을 사용해야하므로 UINavigationController를 사용하고 있습니다. 그렇지 않으면 사용자 정의 도구 모음을 만들었고보기에서 누를 수있었습니다. –

관련 문제