2014-09-25 66 views
0

我的應用程序在開始時隱藏導航欄。UINavigationbar將在UISearchbar結束搜索後顯示,我如何隱藏導航欄

但在視圖(全屏)中,有一個搜索欄。

當我開始搜索時,搜索欄停留在視圖的頂部。

然後我取消搜索,更改搜索欄的框架,導航欄出現。

爲什麼會發生這種情況?我怎樣才能隱藏導航欄?

我嘗試這樣做:

我在searchDisplayControllerWillEndSearch添加一些日誌和searchDisplayControllerDidEndSearch顯示navigtaionbar狀態。

在searchDisplayControllerDidEndSearch,navigationController.navigationBarHidden是YES,

在searchDisplayControllerDidEndSearch,navigationController.navigationBarHidden是NO。

然後我searchDisplayControllerDidEndSearch設置navigationController.navigationBarHidden to YES,導航欄將顯示卻隱藏着在很短的時間,和導航欄將不再顯示。(navigationController.navigationBarHidden將永遠是YES)

任何想法?

謝謝!

回答

-1
  • 您可以使用下面的代碼在你的viewDidLoad隱藏導航欄Self.navigationController.navigationBar.hidden = YES;

  • 如果你正在呈現導航控制器,那麼你可以在演示前隱藏自己的導航欄,通過使用此代碼yournavigation.navigaionBar.hidden = YES;

  • 我們可以使用任一代碼來隱藏導航欄self.navigationController.navigationBarHidden = YES;

    Self.navigationController.navigationBar.hidden = YES;

  • 最後一個可以解決您的問題隱藏導航欄viewWillAppear。我在這裏添加代碼

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

+0

可我知道爲什麼downvote? – 2014-09-25 07:30:29

+0

你永遠不應該使用navigationController.navigationBar.hidden - 使用navigationController.navigationBarHidden – Simon 2014-09-25 07:53:04

+0

首先,謝謝你的回答。如果我使用navigationController.navigationBar.hidden,並且設置爲YES,那麼頂部會有一個黑色空間,好像是導航欄仍然使用這個空間。 – Cotin 2014-09-25 09:18:42

0

寫繼viewDidLoad方法的代碼。

self.navigationController.navigationBarHidden =YES 

其他明智

self.navigationController.navigationBar.hidden =YES; 
+0

我在searchDisplayControllerDidEndSearch中設置了self.navigationController.navigationBar.hidden爲YES,但它起作用。但是第一次,導航欄會先顯示,然後立即隱藏,顯得太怪異。是否有任何方法隱藏導航欄和用戶贏得'沒有看到它。 – Cotin 2014-09-25 05:19:37