2013-08-19 2 views
2

현재 5 개의 탭이 있습니다. 세 번째 탭은 화면의 절반 밖에 공간을 차지하지 않는보기를 표시하고 나머지는 전체 화면을 필요로합니다. 다른 탭 상단에 tab3보기를 어떻게 표시 할 수 있을지 궁금합니다. ' 현재 선택된 탭이 2이고 사용자가 tab3을 누르면, tab2의보기 상단에 tab3의보기가 표시됩니다. 그렇게 할 수 있습니까? 또는 내 자신의보기를 만들고 탭 컨트롤러를 가짜로 만들어야합니다.탭 표시 줄 컨트롤러로 투명한 뷰를 표시하는 방법은 무엇입니까?

답변

0

문제 해결. 매우 우아하지만 작동하지 않습니다. 나는보기가없는보기 컨트롤러로 Tab 3을 가짜로 만들고 tabItem 3을보기 컨트롤러를 표시하는 트리거로 만듭니다. 예 :

duplicatedTab3 = [[Tab3 alloc] init] 
[tabbarController setViewControllers:[NSArray arrayWithObjects:tab1,tab2,tab3,tab4,tab5,nil]]; 

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 
    BOOL flag = NO; 
    NSUInteger tabIndex = [tabBarController.viewControllers indexOfObject:viewController]; 
    if (viewController == [tabBarController.viewControllers objectAtIndex:tabIndex] && 
     tabIndex != tabBarController.selectedIndex) { 
     if ([viewController isMemberOfClass:tab3]) { 
      if (![duplicatedTab3 isShowing]) 
       [duplicatedTab3 show]; 
      else 
       [duplicatedTab3 hide]; 
     } 
     else { 
      flag = YES; 
     } 
    } 
    return flag; 
}