2014-09-11 188 views
3

我正在展示一個加載屏幕,我不想顯示導航欄。所以我用介紹UINavigationController Swift

self.navigationController.navigationBar.hidden = true

其中的伎倆和隱藏導航欄。但是,當我想要顯示導航欄時,我想將其設置爲動畫。

我已嘗試使用此代碼,但不顯示該欄。

self.navigationController.setNavigationBarHidden(false, animated: true)

運行上面的代碼欄仍有隱憂之後,我怎麼能顯示/動畫吧?

+0

什麼控制器或控制器在這些語句,你在哪裏給他們打電話?你如何加載屏幕進入屏幕? – rdelmar 2014-09-11 01:56:53

回答

5

我認爲你的方法已經正確。你只需要知道代碼的放置位置。嘗試下面的代碼。

代碼視圖控制器1

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.navigationController?.navigationBarHidden = true; 
    } 

    override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     self.navigationController?.navigationBarHidden = true; 
    } 

    @IBAction func buttonTapped(sender: UIButton) { 
     self.performSegueWithIdentifier("goToScreen2", sender: self) 
    } 
} 

代碼視圖控制器2

import UIKit 

class ViewController2: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     self.navigationController?.setNavigationBarHidden(false, animated: true) 
    } 
} 

更新答:

我能夠用取消隱藏導航欄下面碼。實施

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController?.navigationBarHidden = true; 
} 

@IBAction func buttonTapped(sender: UIButton) { 
    self.navigationController?.setNavigationBarHidden(false, animated: true) 
} 

屏幕截圖: -

enter image description here

+0

我不改變VC的,我隱藏在'viewDidLoad'的導航欄,並等待一個JSON響應。一旦我得到數據,我想關閉加載屏幕,然後顯示導航欄。 – Clip 2014-09-11 03:54:09

+1

查看更新後的答案,我可以使用無任何問題的按鈕取消隱藏。我剛測試過。我認爲你做錯了什麼。可能是你沒有在故事板上正確實現導航控制器。參見:http://stackoverflow.com/questions/25777465/calling-segue-programatically-not-working/25778229#25778229 – Ricky 2014-09-11 04:08:20