2012-11-09 26 views
0

我有一個帶有2個控制器的導航應用程序:vA和vB。UINavigationBar彈出和滑出而不是滑動

vA是導航控制器的根視圖控制器,它是一個全屏控制器,所以當顯示此控制器時,導航欄是隱藏的。

然後我推VB中使用

[self.navigationController pushViewController:VB動畫:YES];

基於VB的viewDidLoad我有這樣的:

self.navigationController.navigationBarHidden = NO; 
// then I have navigation buttons defined here 

Vb的進入,從右側的屏幕動畫情況是這樣的:

  1. 的的導航欄突然期佤族出現從
  2. VB的幻燈片正確並填滿屏幕。

當我彈出VB的出來,這是發生了什麼

  1. VB的幻燈片顯示背後vA型左側。
  2. 此時,我們看到vA的導航欄顯示在頂部。記住vA應該沒有可見的導航欄。然後,該導航消失並且vA調整爲全屏。

這個動畫沒有恩典,很可怕,笨拙和錯誤。

我想要的是:導航與vB一起滑入和滑出。

我該怎麼做?

謝謝。

回答

1

嘗試以下操作:

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

- (void)viewDidDisappear:(BOOL)animated { 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
    [super viewDidDisappear:animated]; 
} 
// OR viewWillDisappear as mentioned by @RubberDuck 

viewDidLoad隱藏導航欄相反的,實施viewWillAppearviewDidDisappear

+0

鍵入後30秒我意識到解決方案會是這樣的,你的答案几乎就在那裏,正確的是viewWillDisappear!謝謝! – SpaceDog

2

您需要使用動畫版的方法,你在VCB的viewDidLoad使用:

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

編輯後:它似乎在viewDidLoad或viewWillAppear(但不是視圖DidAppear)。它需要在viewWillDisappear回去。