2015-12-22 44 views
1

我需要幫助顯示和隱藏未與導航控制器鏈接的自定義導航欄。我已初始化我的導航欄,並且UITapGestureRecognizerviewWillAppear中,並且希望讓手勢選擇器顯示和隱藏導航欄。我曾試過無數navigationController功能,但因爲我還沒有嵌入一個他們似乎沒有工作:需要幫助隱藏/顯示自定義navBar IOS Swift

navigationController?.barHideOnTapGestureRecognizer 
// OR 
navigationController?.hidesBarsOnTap = true 
// OR 
navigationController?.setNavigationBarHidden(true, animated: true) 

我已經看到:

navigationBar.hidden = true //OR FALSE 

可以更改導航欄的初始外觀,但它不能像我需要的那樣切換顯示/隱藏。基本上它只需要模仿蘋果的照片應用程序。提前致謝。

+0

你爲什麼不只是使用導航控制器:在這裏你改變隱藏狀態

然後寫的方法? –

+0

通過寫這篇文章的一半,我意識到我應該有另一個,但我已經有2和它的惱人的鏈接周圍發送對象從一個控制器到另一個。儘管如此,儘管還有更多的工作,感謝您的意見! – bme003

回答

1

一種方法是爲您的自定義導航欄創建一個IBAction。在這種IBAction爲設置

navigationBar.hidden = true 

navigationBar.hidden = false 

根據當前隱藏狀態

或者,如果您創建的元素編程,您可以使用嘗試的方法目標事件爲您的UIGestureRecognizer

首先,添加一個目標到您的元素:

gestureRecognizer.addTarget(self, action: "pressed:", forControlEvents: .TouchUpInside) 

.addTarget動作參數,設置應該調用的方法名。

func pressed(sender: UIGestureRecognizer!) { 
    if navigationBar.hidden = true { 
     navigationBar.hidden = false} 
    else{ 
     navigationBar.hidden = true} 
} 
+0

這看起來好像可以工作,但我已經在代碼中創建了我的導航欄,所以我沒有真正的物理創建插座? – bme003

+0

@ bme003好的,然後你使用你的UIGestureRecognizer來捕捉水龍頭。我編輯了答案。 –

+0

@ bme003請以某種方式標記答案,如果您覺得有幫助 –