2014-05-01 300 views
0

我已將UITabBarController設置爲AppDelegate中的根視圖控制器。UINavigationBar高度錯誤,因爲狀態欄在加載時隱藏

我在窗口中添加了一個加載視圖,而應用程序下載了一些數據。當加載屏幕可見時,我隱藏了狀態欄。一旦加載完成,我會淡化加載視圖並再次顯示狀態欄。

我的問題是,當我顯示狀態欄導航欄沒有繪製到正確的高度,因爲狀態欄被繪製時被隱藏。如果我換到另一個標籤,它會得到正確的高度。

我試過[navigationController.view setNeedsLayout],但這似乎得到了ViewController右視圖的位置,但導航欄的內容沒有調整大小。我也嘗試過[navigationController.navigationBar setNeedsLayout],但這確實有幫助。

所以我基本上想要讓導航抽屜在加載視圖消失時獲得狀態欄和內容的正確高度。我怎樣才能做到這一點?

回答

3

您是否嘗試重置導航和狀態欄,如下所示?

-(void)resetNavigationBar 
{ 
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 

    [self.navigationController setNavigationBarHidden:YES]; 

    [self.navigationController setNavigationBarHidden:NO]; 
} 
+0

這個答案很好,但是你應該改變setStatusBarHidden:從YES到NO。 –

0

我將在加載視圖的viewWillDisappear:方法中取消隱藏狀態欄。

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 
}