2015-11-14 11 views
0

我有2個視圖控制器,連接查看顯示(推)賽格。在初始視圖控制器我有以下來控制導航欄的樣式:展開賽格結果清除導航欄

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.navigationController?.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "ProximaNova-Semibold", size: 18)!, NSForegroundColorAttributeName: UIColorFromRGB("292929")] 
    self.navigationController?.navigationBar.barTintColor = UIColorFromRGB("f7f7f7") 
    self.navigationController?.navigationBar.layer.borderColor = UIColorFromRGB("E9E9E9").CGColor 
} 

在目標視圖控制器,我有以下來控制該控制器的導航欄的樣式:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) 
    self.navigationController?.navigationBar.shadowImage = UIImage() 
    self.navigationController?.navigationBar.translucent = true 

    self.navigationController?.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "ProximaNova-Semibold", size: 18)!, NSForegroundColorAttributeName: UIColorFromRGB("FFFFFF")] 

} 

問題是當我單擊目標視圖控制器上的後退按鈕以返回到初始視圖控制器時,導航欄設置爲目標視圖控制器的樣式。任何解決方案

回答

1

您應該在兩個控制器的viewWillAppear方法中編寫導航欄樣式的代碼,如下所示。 因爲viewDidLoad方法在視圖的每個生命週期中被調用一次。一旦視圖被加載,該方法將不會再次執行。所以代替viewDidLoad中的我們必須使用viewWillAppear中

Initialview控制器代碼

override func viewWillAppear() { 

    self.navigationController?.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "ProximaNova-Semibold", size: 18)!, NSForegroundColorAttributeName: UIColorFromRGB("292929")] 
    self.navigationController?.navigationBar.barTintColor = UIColorFromRGB("f7f7f7") 
    self.navigationController?.navigationBar.layer.borderColor = UIColorFromRGB("E9E9E9").CGColor 
} 

目的地視圖控制器代碼

override func viewWillAppear() { 
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) 
    self.navigationController?.navigationBar.shadowImage = UIImage() 
    self.navigationController?.navigationBar.translucent = true 

    self.navigationController?.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "ProximaNova-Semibold", size: 18)!, NSForegroundColorAttributeName: UIColorFromRGB("FFFFFF")] 
}