我想为每个视图控制器设置UINavigationBar颜色,而不是在app委托中,因为这样做会这样做。
UINavigationBar.appearance().backgroundColor = UIColor.whiteColor()
UINavigationBar.appearance().translucent = false
我环顾四周,却无法找到如何做到这一点。我试着这样做,但它不起作用:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()
self.navigationController?.navigationBar.tintColor = UIColor.blackColor()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
}
如何根据视图控制器而不是全局设置颜色?
答案 0 :(得分:1)
根据我的理解,您需要在每个视图控制器中设置代码以设置导航栏颜色。尝试将此代码添加到每个视图控制器的viewDidLoad
:
if let navController = self.navigationController {
navController.navigationBar.tintColor = self.view.tintColor
}
无论视图控制器的色调是什么,这都会使导航栏的色调变亮,但显然可以将其更改为您想要的任何颜色。
这样做的好处就是你可以直接复制粘贴它而不必改变任何东西,因此很容易在多个视图控制器上实现(因为没有对视图控制器名称的特定引用)。
我希望这会有所帮助。