我有两个viewControllers,它们具有相同mapViewController的segue。所以我试着改变地图上工具栏按钮的色调颜色,但当然它说错误为零。还有另一种方法可以做到这一点。因为我需要告诉编译器,如果segue来自tableViewController,那么使条形按钮变为白色"好像没有被选中"如果segue是从mainViewController发送的,那么将条形按钮设为黄色。
这是tableView代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "locationView"{
let mapVC:MapViewController = segue.destinationViewController as! MapViewController
mapVC.pinCoordinate = coordinate
mapVC.snippetTitle = caseTitleOnLocation
mapVC.snippetDescription = caseDescriptionOnLocation
mapVC.addLocation.tintColor = UIColor.whiteColor() //error
这是mainViewController代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "rescueMap"{
let mapVC:MapViewController = segue.destinationViewController as! MapViewController
mapVC.addLocation.tintColor = UIColor.yellowColor() //error
}
答案 0 :(得分:1)
您遇到错误的原因是您尝试在不存在的视图上设置值YET。
您可以在UIColor()
中创建mapViewController
变量,然后传递您想要的颜色
实施例
在mapViewController中
class mapViewController{
var barColor : UIColor!
override func viewDidLoad(){
self.toolbar.barTintColor = barColor
}
}
在mainViewController中
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "rescueMap"{
let mapVC:MapViewController = segue.destinationViewController as! MapViewController
mapVC.barColor = UIColor.yellowColor()
}
你会明白的。
答案 1 :(得分:0)
这是问题所在,因为您正在使用未在视图中初始化的栏。因此,首先初始化地图视图/工具栏以更改色调颜色。