2011-04-28 71 views
1

在某些時候我需要一個tabBar控制器,而不是導航控制器。爲了達到這個目的,我發佈了導航控制器,並在窗口中添加了一個標籤欄。刪除窗口層級導航或標籤欄控制器

是否將UINavigationcontroller從窗口層次結構中刪除?

+0

你是否將你的tabBar分配給window.rootViewController? – Cyprian 2011-04-28 09:29:53

回答

3

我知道你想從導航控制器切換到TabBar控制器並返回,但是你擔心一旦被移除,你將無法恢復它。

顯而易見的解決方案不是去除它們,而是隱藏它們。以下是TabBar控制器的示例,它只是將y點從431移動到480,因此它會出現在視圖之外並返回。

- (void) hidetabbar:(BOOL)hiddenTabBar { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5]; 
    for(UIView *view in self.uiTabBarController.view.subviews){ 
     if([view isKindOfClass:[UITabBar class]]) { 
      if (hiddenTabBar) { 
       [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)]; 
      } else { 
       [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)]; 
      } 
     } else { 
      if (hiddenTabBar) { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)]; 
      } else { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)]; 
      } 
     } 
    } 
    [UIView commitAnimations]; 
} 

您可以對導航控制器完全相同。

+0

@ jano-謝謝你救了我的一天 – iOSPawan 2011-04-28 12:33:35

相關問題