2011-08-03 5 views
0

나는 탭바드 컨트롤러가 있습니다. 보기에서 탭 표시 줄을 숨기고 다음보기에서 동일한 탭 표시를 숨기려고합니다. 숨기기 코드가 첫 번째보기에서 작동하지만 탭 표시 줄을 숨기는 두 번째보기에서는 작동하지 않습니다.tabbar 숨기기 및 숨기기

내 코드 : 숨기기 위해

: 숨김 해제를 들어

[[self navigationController] setHidesBottomBarWhenPushed:YES]; 

:

[[self navigationController] setHidesBottomBarWhenPushed:NO]; 
+0

체크 아웃 아래의 링크를. tabbar를 보이거나 숨길 수 있습니다. http://stackoverflow.com/questions/1209582/is-it-possible-to-hide-the-tabbar-when-a-button-is-pressed-to-allow-a-full-screen – iOS

답변

1

.H

- (void) hideTabBarOfThisTabbarController:(UITabBarController *) tabbarcontroller withAnimationDuration:(int)duration; 

- (void) showTabBarOfThisTabbarController:(UITabBarController *) tabbarcontroller withAnimationDuration:(int)duration; 

하는 .m

- (void) hideTabBarOfThisTabbarController:(UITabBarController *) tabbarcontroller withAnimationDuration:(int)duration{ 

    [UIView transitionWithView:tabbarcontroller.tabBar duration:duration options: UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionAllowUserInteraction animations:^(void) { 

     for(UIView *view in tabbarcontroller.view.subviews) 
     { 
      if([view isKindOfClass:[UITabBar class]]) 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)]; 
      } 
      else 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)]; 
      } 

     } 


    } completion:^(BOOL finished) { 


     NSLog(@"tabbar hidden"); 

    }]; 


} 

- (void) showTabBarOfThisTabbarController:(UITabBarController *) tabbarcontroller withAnimationDuration:(int)duration{ 


    [UIView transitionWithView:tabbarcontroller.tabBar duration:duration options:UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionAllowUserInteraction animations:^(void) { 



     for(UIView *view in tabbarcontroller.view.subviews) 
     { 
      NSLog(@"%@", view); 

      if([view isKindOfClass:[UITabBar class]]) 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)]; 

      } 
      else 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)]; 
      } 


     } 


    } completion:^(BOOL finished) { 


     NSLog(@"tabbar shown"); 

    }]; 


    //u can call like this 

    //[self hideTabBarOfThisTabbarController:self.tabBarCon withAnimationDuration:3]; 

    //if u want immediately hide/show the tabbar then duration should be 0.0 
+1

** 중단하십시오 ** 많은 답변에 문맥이없는 동일한 형태의 코드를 버리십시오. –

+0

@Tim Post @Tim Post이 작업을하기 위해 약 3 시간을 보냈습니다. 그래서 나는이 모든 것을 공유했고 내 대답에 대한 알림을받을 수있는 사람들을 위해. 다시 반복 할 것입니다. 링크를 지나가는 것을 잊어 버립니다. 미안 해요. .i이 실수를 다시 범하지 않겠습니까 –

+2

댓글에 링크를 전달할 수 있습니다. 괜찮을 것입니다. 이 대답에 몇 가지 문맥을 추가하십시오. 지금은 사람들이 그 유용성을 간과하게 만드는 코드 덤프 일뿐입니다. –