2011-06-01 63 views
0

我建立與一個UINavigationController編程一個UITableView:卸下上述的UINavigationController灰色條在一個UITableView

- (void) displayView:(int)intNewView{ 

    NSLog(@"%i", intNewView); 
    [currentView.view removeFromSuperview]; 
    [currentView release]; 

    switch (intNewView) { 
     ...... 

     case 5: 
      vc = [[RootViewController alloc] init]; 
      currentView = [[UINavigationController alloc] initWithRootViewController:vc]; 
      [currentView setTitle:@"Events"]; 
      break; 
    } 

    [UIView beginAnimations:nil context:nil]; 

    [UIView setAnimationDuration:0.5]; 

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
          forView:self.view 
          cache:YES]; 

    [self.view addSubview:currentView.view]; 

    [UIView commitAnimations]; 
} 

然而,當視圖出現有我的其他視圖一個惱人的灰色條棲息導航控制器以上,沒有受此影響。只有UITableView和NavigationController的視圖。

任何想法是什麼造成這一點,以及如何刪除它?

謝謝,

傑克

+2

你能上傳截圖嗎? – 2011-06-01 12:01:16

+0

檢查此: [http://stackoverflow.com/questions/1054539/not-sure-why-uiview-is-being-nudged-up-by-around-10px](http://stackoverflow.com/questions/1054539/not-sure-why-uiview-is-being-nudged-up-by-around-10px) – CarmeloS 2011-06-01 13:09:36

回答

1

當UINavigationController初始化時,它會這樣做,希望iPhone的狀態欄出現在屏幕的頂部。因此,爲了適應這種情況,視圖基本上稍微向下移動一點。但是,正如我的UINavigationController是我的RootViewController的內部,UINavigationController的不必適應狀態欄,因此可以是「向上移動」使用以下行適當的距離把我RootViewController的的viewDidLoad方法內:

self.navigationController.view.frame = CGRectMake(0, -20, 320, 480); 

現在程序運行時,我的視圖頂部沒有灰色條/灰色空間。

感謝您的幫助,指引我朝着正確的方向前進。

傑克

+0

查看UIViewController(其中的UINavigationController是子類)的wantsFullScreen屬性。 – bneely 2013-04-09 23:09:38

2

UINavigationController預計將在窗口根視圖,因此它包括了狀態欄。如果將其放置在包含狀態欄的另一個視圖中,則會繪製第二個空狀態欄,它看起來像「在導航控制器上方棲息着令人討厭的灰色條」。

相關問題