2010-04-21 5 views
0

내비게이션 컨트롤러와 함께 탭 막대 컨트롤러를 사용하는 응용 프로그램이 있습니다. 그러나 일부 페이지의 경우 두 막대 (Tab & 탐색)를 숨기고 싶은 페이지는 다시 볼 수 있습니다 ... 나는 숨길 수 있습니다. 네비게이션 바 &도 만들었습니다. 일부 페이지 다음에 나타납니다. 으로 탭 표시 줄을 숨길 수 있습니다. - (BOOL) hidesBottomBarWhenPushed { return TRUE; }일부 페이지의 경우 탭바를 숨기고 다시 표시하도록 설정하는 방법은 무엇입니까?

하지만 문제는 어떻게 페이지를 만들면 다시 표시 할 수 있습니까?

+0

에 먼저 다른 질문에 대한 답변을 수용 할 수 있습니다. – RaYell

답변

6
[[self navigationController] setNavigationBarHidden:UIDeviceOrientationIsLandscape(toInterfaceOrientation) animated:YES]; 

다음 서브 클래스 UITabBarController가

- (void) hideTabBar:(BOOL)hide animated:(BOOL)animated { 

    if (tabBarHidden == hide) { return; } 

    if (animated) { 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:1.5]; 
    } 

    for(UIView *view in self.view.subviews) { 

     if([view isKindOfClass:[UITabBar class]]) { 

      if (!hide) { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y-49, view.frame.size.width, view.frame.size.height)]; 
      } else { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y+49, view.frame.size.width, view.frame.size.height)]; 
      } 
     } else { 
      if (!hide) { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height-49)]; 
      } else { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height+49)]; 
      } 

     } 
    } 

    if (animated) { [UIView commitAnimations]; } 

    tabBarHidden = hide; 

} 
+0

답장을 보내 주셔서 감사합니다 ..... .....하지만 작동하지 않습니다 : ( – priya

+0

UITabBarController를 서브 클래스 화하고 그 안에이 메서드를 포함 시키십시오. – adam

+0

예, 위의 코드를 서브 클래 싱 된 UITabBarController에서 시도했지만 .... 작동하지 않습니다. – priya

관련 문제