【发布时间】:2015-11-03 20:37:36
【问题描述】:
我的 ViewController 中有一个 MKMap,我允许我的用户在“标准”、“混合”和“卫星”之间切换地图类型 - 就像在地图应用中一样。就像在地图应用程序中一样,我有一个底部栏,然后我在顶部有一个导航栏。当用户在地图类型之间切换时,“混合”和“卫星”的条形应变为带有白色按钮的黑色背景,“标准”将变为带有蓝色按钮的白色背景。
我的底栏可以正确更改颜色,但根本无法更改导航栏。这是我在用户更改地图类型时的功能:
func changeMapType(sender:UISegmentedControl){
if mapType.selectedSegmentIndex == 0{
mapView.mapType = MKMapType.Standard
toolbar.barTintColor = UIColor(red:1.0, green:1.0, blue:1.0, alpha:1.0)
toolbar.tintColor = UIColor(red:0.0, green:122.0/255.0, blue:1.0, alpha:1.0)
self.navigationController?.navigationBar.translucent = false
self.navigationController?.navigationBar.barTintColor = UIColor(red:1.0, green:1.0, blue:1.0, alpha:1.0)
self.navigationController?.navigationBar.tintColor = UIColor(red:0.0, green:122.0/255.0, blue:1.0, alpha:1.0)
defaults.setValue("Standard", forKey: "initialMapType")
}
else if mapType.selectedSegmentIndex == 1{
mapView.mapType = MKMapType.Hybrid
toolbar.barTintColor = UIColor.blackColor()
toolbar.tintColor = UIColor.whiteColor()
self.navigationController?.navigationBar.translucent = false
self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
defaults.setValue("Hybrid", forKey: "initialMapType")
}
else if mapType.selectedSegmentIndex == 2{
mapView.mapType = MKMapType.Satellite
toolbar.barTintColor = UIColor.blackColor()
toolbar.tintColor = UIColor.whiteColor()
self.navigationController?.navigationBar.translucent = false
self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
defaults.setValue("Satellite", forKey: "initialMapType")
}
}
有谁知道我必须做些什么来让我的导航栏改变颜色?
【问题讨论】:
-
你说你有一个导航栏。但您实际上是在导航控制器中吗?
-
是的,我在导航控制器中。
-
好吧,实际上,既然你说我回去检查了,结果我不知何故在另一个导航控制器中有一个导航控制器,这就是导致问题的原因。我删除了它,我的导航栏现在工作得很好。我觉得很愚蠢,我被困了一段时间。非常感谢您的帮助!
标签: ios swift uinavigationbar tintcolor bartintcolor