2010-08-16 4 views
0

.hidesBottomBarWhenPushed = NO; 보기가 밀리지 않기 때문에 작동하지 않습니다. TabBar를 첫 번째 화면에 숨기고 나중에 몇 가지 화면을 다시 표시 할 수 있기를 바랍니다.첫로드시 tabBar를 숨기고 이후 화면에 표시하려면 어떻게합니까?

어떻게하면됩니까?

+0

아직 만들지 않습니까? : p –

+0

태그가 좋습니다. iOS 용 객관적인 C로 작업한다는 질문 문구에서 언급하고 싶을 수도 있습니다. 그것을 이해하기 위해 몇 번 읽어야했다. – ford

답변

1

서브 클래스에게 당신의 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; 

} 

같은 기능을 추가하려면이 같은 기능을 추가

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return allowRotate; 
} 
+0

고마워, 나는이 기회를 포기하겠다. 나는 다른 tabBar 행동을 수정하기 위해 또 다른 질문을해야한다고 생각한다. 이 디자인에서는 시작시 등록 화면이 필요하지만 이미 등록한 경우 (전화에서로드하고 서버로 보내기) 탭 모음이 표시되는 다음 화면으로 이동합니다. 탭을 탭하면 원래 등록 화면으로 돌아갑니다. 등록을 마친 후 표시되는 TabBar보기로 이동하게됩니다. * _ * – quantumpotato

+0

이 방법이 효과가 있다면 답변을 올바르게 기재 해 주셔서 감사합니다. – adam

1

탭바는 응용 프로그램의 UI의 최상위 수준으로 설계 되었기 때문에이 작업은 어려울 수 있습니다. 이것에 대한 문서는 매우 분명합니다. 따라서 상위에 있지 않은 컨트롤러 계층에서 제대로 재생되지 않습니다.

정말 원하는대로 수행 할 수있는 유일한 방법은 프로그래밍 방식으로 탭바를 만들 때 나타납니다. 그러나 신뢰할 수있는 코드가 생성된다고 말할 수는 없습니다. tabbar가 당신을 줄곧 싸울 것입니다.

정말 UI 디자인을 재고해야합니다. 비표준 방식으로 tabbar를 사용하면 사용자를 혼란스럽게합니다. 표준은 UI의 최상위에 탭바를 가지고 있기 때문에 사용자는 탭바를 볼 때 최상위 레벨에 있다고 믿습니다. 그들은 방향 감각을 잃을 것이다. 앱이 사용자가 배운 인터페이스 문법에 동의하도록 표준 사용법을 고수해야합니다.

는 탭 표시 줄이 회전 할 iPhone Human Interface Guidelines.

+0

나는이 구현을 많이 좋아하지 않는다. UI를 디자인하지는 않았지만 코드를 작성해야했습니다. 프로그래밍 방식으로 tabBar를 만드는 방법을 살펴 보겠습니다. – quantumpotato

+0

나는 너의 고통을 느낀다. 열악한 디자인을 구현하는 것보다 끔찍한 일이 없습니다. – TechZen

관련 문제