3

我有一個iOS應用程序,設計在UINavigationController中。然而,其中一個推送的視圖控制器需要全屏視圖,而頂部沒有導航欄。 (回來,只有一個小的圓形按鈕)。然而,我嘗試過的'隱藏'導航欄(navigationCtl.navigationBar.hidden = TRUE)的任何方法都給我留下了醜陋的工件 - 在視圖被推入之前(在viewDidLoad或viewWillAppear中)調用它會導致先前的視圖控制器欄隨着幻燈片離開動畫開始,閃爍白色。同樣,在viewDidAppear中調用它會在第二個視圖的頂部留下一個白色條,同時還會推出幾個子視圖。有什麼辦法可以讓新視圖像平常一樣滑過,但是當它結束時,頂部沒有導航欄?iOS推送導航控制器,在第二個視圖上沒有酒吧


請注意,以幫助谷歌,基本上這裏的問題是:

如何在兩個UIViewControllers間動畫,當一個在頂部導航欄,和其他人不具有導航頂部的酒吧。所以,如何從帶有導航欄的UIViewController導航到沒有導航欄的導航欄 - 避免可怕的閃爍。

令人驚歎的答案在下面由Ev給出...真棒。

+0

爲什麼不選擇'presentViewController:animated:completion:'? – Carina 2012-08-16 02:32:13

回答

9

給這個旋轉,看看它是如何工作的。

在目的地視圖控制器

在viewWillAppear中

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

它實際上具有涼爽的效果,並且可以是有用的。在viewWillAppear中,所有事情都在視圖顯示之前發生,所以它會帶走奇怪的工件。

很好

+1

將動畫從NO更改爲YES還修復導航堆棧可能損壞的錯誤。將它設置爲NO,如果您從屏幕左側滑動回去,但取消滑動,導航欄會變得非常糟糕。 – 2016-02-26 20:42:53

相關問題