roh*_*ldb 2 uinavigationbar background-color ios appdelegate swift
我试图在包含UISearchController的视图中更改导航栏的颜色.我以前在appDelegate中为整个应用程序设置了导航栏的颜色,但我希望这个视图导航栏有不同的颜色.问题是,我不知道放置代码的功能,以便它将覆盖appDelegate代码.例如,viewDidLoad和viewWilAppear在视图首次加载时不会更改颜色,只有在我输入和取消searchController之后.我应该放置以下哪个功能?
UINavigationBar.appearance().backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
有两种方法可以做到这一点.您可以修改在AppDelegate中为整个应用程序设置的外观代理,也可以修改特定屏幕的单个导航栏.
当您关闭视图时 - 需要重置viewWillDisappear中的barTintColor.
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
// Set to new colour for whole app
UINavigationBar.appearance().barTintColor = UIColor.blueColor()
// Or, Set to new colour for just this navigation bar
self.navigationController?.navigationBar.barTintColor = UIColor.blueColor()
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
//Revert to old colour, whole app
UINavigationBar.appearance().barTintColor = UIColor.redColor()
//Revert to old colour, just this navigation bar
self.navigationController?.navigationBar.barTintColor = UIColor.redColor()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4682 次 |
| 最近记录: |