0

我在AppDelegate中設置了應用程序導航欄。 在我的一個ViewController's我試圖設置不同的屬性 - 他們工作,但是當我到其他VC的仍然堅持。僅在一個ViewController中更改導航欄屬性

什麼是正確的方式來實現呢?

AppDelegate.swift

UINavigationBar.appearance().titleTextAttributes = [ 
     NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!, 
     NSForegroundColorAttributeName: UIColor.white 
    ] 
    UINavigationBar.appearance().tintColor = UIColor.white 

SharkViewController.swift

// MARK: - View Did Load 
override func viewDidLoad() { 
    super.viewDidLoad() 

    UINavigationBar.appearance().titleTextAttributes = [ 
     NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!, 
     NSForegroundColorAttributeName: UIColor.black 
    ] 
} 

回答

3

做在你的viewWillAppear

UINavigationBar.appearance().titleTextAttributes = [ 
    NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!, 
    NSForegroundColorAttributeName: UIColor.black 
] 

然後當你離開的觀點,在你viewWillDisappear,你只是重置原有的價值。

0

您還可以在viewDidLoad:viewWillAppear使用下面的代碼:

self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!, 
                    NSForegroundColorAttributeName: UIColor.black] 
+1

'viewDidLoad中:'是不夠的,因爲它不會被調用下一次用戶導航到視圖控制器,如通過後退按鈕或放鬆繼續。 – NRitH