gpt4 book ai didi

ios - Swift:MapKit - 识别 Pin Tap

转载 作者:可可西里 更新时间:2023-11-01 01:34:44 25 4
gpt4 key购买 nike

我一定是遗漏了一些明显的东西......

作品:从 Core Data 添加一堆 MKPointAnnotations...显示在 map 上

不起作用:尝试在点击 pin 时显示打印语句。

我设置了 MKMapView Delegate 并且没有实现 AnnotationView,因为我希望在点击 pin 后立即进行 segue。宁愿不显示上下文对话框。

我错过了什么来识别 pin 被点击了?

import UIKit
import MapKit
import Foundation
import CoreData

class MapViewController: UIViewController, MKMapViewDelegate {
@IBOutlet weak var mapOutlet: MKMapView!

var latitude = 100.0 as Double
var longitude = 120.0 as Double

var pins = [NSManagedObject]()

func pullPins() {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext

let fetchRequest = NSFetchRequest(entityName: "Pin")

do {
let results = try managedContext.executeFetchRequest(fetchRequest)
pins = results as! [NSManagedObject]

for pin in pins {
let pinLat = pin.valueForKey("latitude") as! Double
let pinLon = pin.valueForKey("longitude") as! Double

let pinCoordinate = CLLocationCoordinate2D(latitude: pinLat, longitude: pinLon)

let annotation = MKPointAnnotation()
annotation.coordinate = pinCoordinate

self.mapOutlet.addAnnotation(annotation)
}
}
catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
}


func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {
print("Pin Tapped")
}

override func viewDidLoad() {
super.viewDidLoad()

pullPins()
}
}

最佳答案

如果您没有收到 map View 委托(delegate)消息,那是因为您还没有让自己成为 map View 的委托(delegate)。例如:

self.mapOutlet.delegate = self

关于ios - Swift:MapKit - 识别 Pin Tap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667845/

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