0

내비게이션 컨트롤러를 사용하여 제목 표시 줄과 뒤로 가기 버튼 등을 표시하는 iPhone 응용 프로그램이 있습니다.iPhone의 UITabBar을 응용 프로그램 윈도우의 일부로; 장치를 회전시킬 때의 문제

응용 프로그램 창에 UITabBar을 추가하여 응용 프로그램 창 사이를 전환 할 수 있습니다. 각 ViewController 뷰에 탭 표시 줄을 추가하는 대신 응용 프로그램 창에 막대를 추가했습니다.

(내가 ViewController에서 가지고있을 때, 컨트롤러 사이를 전환하면 애니메이션 팝/푸시가 발생했을 때 탭 표시 줄이 왼쪽/오른쪽으로 전체보기와 함께 스 와이프되었습니다.)

그래서 에 UITabBar을 추가하고 앱 대리인의 변수에 연결했습니다.

[self.window addSubview:navigationController.view]; 

CGRect frame = navigationController.view.frame; 
frame.size.height -= tabbar.frame.size.height; 
navigationController.view.frame = frame; 
tabbar.selectedItem = [tabbar.items objectAtIndex:0]; 

이 TabBar의 볼 수 있도록하기 위해, 주 (navigationController 년대) 뷰의 크기를 조정하는 내 didFinishLaunchingWithOptions 방법에서, 나는 다음과 같은 코드를 추가.

장치 회전시 문제가 발생합니다. 내보기가 전체 창으로 늘어나고 TabBar를 표시하는 기능이 느슨합니다.

나는 다음 코드를 사용하여 내의 ViewController에 - (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation) fromInterfaceOrientation 방법을 추가 :

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    CGRect frame = self.view.frame; 
    frame.size.height -= [AppState shared].tabBar.frame.size.height; 
    //frame.origin.y = [AppState shared].tabBar.frame.size.height; 
    //frame.origin.x = 100; 
    self.view.frame = frame;  
    frame = [AppState shared].tabBar.frame; 
    frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.origin.y - frame.size.height; 
    [AppState shared].tabBar.frame = frame; 
} 

그것은 뷰의 크기를 조정하고, 탭 표시 줄을 이동 뷰의 위/아래 부분 (I는 세로/세로 허용하려면 거꾸로 된 방향). 문제는 내 TabBar가 거꾸로되어 있고 더 이상 클릭 할 수 없다는 것입니다.

Tab bar upside down

누구나 이런 상황을 처리하는 방법을 알고 :

은 아래 이미지처럼 보인다? 또는 컨트롤러를 볼 수있는 탭 막대를 만들지 않고 인터페이스의 회전을 원활하게 처리 할 수있는 방법은 무엇입니까?

답변

1

의도하지 않은 방식으로 탭 모음을 사용하고 있습니다. UITabBarView를 다른 뷰의 제어되지 않는 요소로 사용하는 것 같습니다. 그것은 기능이 아닙니다.

UITabBarView는 UITabBarController에 의해 직접 제어되어야합니다. UITabBarView는 Tabbar에 표시된보기에 대한 모든보기 컨트롤러를 제어해야합니다. 즉, Tabbar 컨트롤러는 하위 컨트롤러를 제어하는 ​​탐색 컨트롤러 유형입니다.

세 개의 탭이 있으며 세 번째 탭은 네비게이션 컨트롤러라고 가정합니다. 귀하의 컨트롤러 계층 구조는 다음과 같이 보일 것이다 : 당신은 그것의 컨트롤러와 적절한 컨트롤러 계층없이 TabBar의보기를 이동하고 관리하기 위해 노력하고있다

TabbarController: 
    -->tab1ViewController 
    -->tab2ViewController 
    -->tab3ViewController(UINavigationController): 
      -->rootViewController-->secondViewController 

. 그것은 작동하지 않을 것입니다.

관련 문제