3

我有一些奇怪的UINavigationBar錯誤。UINavigationBar消失iOS7

有時,它只是消失了(其實如果你移動視圖屏幕的一半,然後就釋放)

gif 5,3mb

Video example

在第一個視圖控制器的viewWillAppear:我稱之爲:

[self.navigationController setNavigationBarHidden:NO animated:YES];

Th Ë第二的ViewController的viewWillAppear:包含:

[self.navigationController setNavigationBarHidden:YES animated:NO];

我試圖改變animated:參數,但它並不能幫助。

是iOS7的bug還是我只是做錯了什麼?

+0

是否嘗試過self.navigationcontroller.navigationbarhidden = NO ;?或者你有沒有導航欄的xib?將xib文件導航欄類型設置爲過度的bnavigationbar.other,而不是嘗試分析導航欄隱藏的語句。 – iOSdev

+0

@NarasimhaiahKolli是的,我試過這個。它與[self.navigationController setNavigationBarHidden:NO animated:NO]相同。 – wiruzx

+0

@NarasimhaiahKolli和我只有xib只爲第一個ViewController – wiruzx

回答

0

您應該爲每個導航控制器定義外觀。 如果你想有第二個控制器上的導航欄只有你應該做在那個特定的控制器如下:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:YES]; 
} 

這樣就會事件的工作,如果你需要改變你的控制器的訂單。

+0

在這種情況下導航欄消失之前隱藏ViewController,頂部我有黑色空間。 – wiruzx

+0

檢查動畫標誌是否設置爲YES。如果我將其設置爲「不」,我會看到與您所描述的完全相同的內容。 – monder

+0

如果我設置NavigatorBarHidden在viewWillDisappear的第二個控制器它是一樣的gif。如果我將它設置在viewWillDisappear的第一個viewWillAppear中,我有黑色空間。像這樣的 – wiruzx

2

我找到了原因。 這是因爲發生在info.plist

View controller-based status bar appearance等於YES

如果將其更改爲NO,那麼一切都將被罰款

1

我得到了同樣的問題,並固定它。解決辦法是:

  1. 修改info.plist,將「View controller-based status bar appearance」設置爲NO;

  2. 全部刪除 - (UIStatusBarStyle)preferredStatusBarStyle {};

  3. 如果您的視圖控制器具有不同的狀態欄樣式,使用[[UIApplication的sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]。

    例如在viewWillAppear設置爲點亮,在消失,設置爲黑暗風格。

相關問題