gpt4 book ai didi

ios - 快速检测在谷歌地图上按下了哪个标记

转载 作者:搜寻专家 更新时间:2023-11-01 06:16:51 24 4
gpt4 key购买 nike

我想知道如何检测 map 上按下了哪个标记。我在从 API 下载的标记数组中的 map 和类标记中几乎没有标记,其中包含一些数据。现在我想知道如何在按下标记后将数据发送到下一个 VC。将整个数组发送到下一个 VC,然后以某种方式通过另一个 VC 上的数组获取数据是否很好?

最佳答案

您可以使用 userData 属性来存储您想要的唯一数据。

for (index,i) in markers.enumerated() {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(i.lat, i.lng)
marker.userData = ["index": index]
print("@@@\(i.id)")
marker.title = i.name
marker.map = mapView
}

像这样在 didTap 方法中执行 segue。

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {

performSegue(withIdentifier: "details", sender: marker)
return true
}

现在在 prepareForSegue 中从 userData 获取对象的索引。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "details" {
var nextVC = segue.destination as! VC2
if let marker = sender as? GMSMarker,
let dict = marker.userData as? [String:Int] {


print(dict["index"])
// use this array index to access object from array
}
}
}

关于ios - 快速检测在谷歌地图上按下了哪个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42840594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com