我正在使用这个简单的MyMarker
类
class MyMarker: GMSMarker {
var id: UInt32 = 0
}
这样我的标记也可以包含额外的数字标记。当用户点按我的标记时,我会调用segue
打开一个新的场景,其中的内容是动态的,并根据MyMarker
{{1}绘制}。我想做点什么:
id
问题当然是GMSMapViewDelegate期望标记为 func mapView(mapView: GMSMapView, didTapMarker marker: MyMarker) -> Bool {
some_global_variable = marker.id;
performSegueWithIdentifier("segue", sender: nil)
return true
}
类型。
如何实现我追求的行为?
答案 0 :(得分:5)
您需要在其代理方法中键入强制转换GMSMarker
到自定义标记,不要更改GMSMapViewDelegate
方法的签名。
func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
if let myMarker = marker as? MyMarker {
some_global_variable = myMarker.id
performSegueWithIdentifier("segue", sender: nil)
}
return true
}