2016-07-29 59 views
2

我必須缺少明顯的東西在這裏.....斯威夫特:MapKit - 認識針點擊

作品: 添加了一堆MKPointAnnotations的從核心數據...顯示在地圖上

不起作用: 嘗試讓輕擊銷釘時出現打印聲明。

我有MKMapView委託集並沒有實現AnnotationView,因爲我希望在點擊一個引腳後立即繼續。寧願不顯示上下文對話框。

我錯過了什麼認識到一個引腳是竊聽?

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() 
    } 
} 

回答

2

如果您沒有收到地圖視圖委託消息,那是因爲您沒有讓自己成爲地圖視圖的委託。例如:

self.mapOutlet.delegate = self 
+0

我不敢相信我忘了這樣做!!!!!!謝謝@matt –