2016-07-29 6 views
2
私はここで何かを明らかに不足しているしなければならない

.....スウィフト:MapKit - ピンをタップを認識

作品: は、コアデータからMKPointAnnotationsの束を追加...ショーを地図上

機能しません: ピンをタップしたときにprintステートメントを表示させてください。

私はMKMapView Delegateセットを持っており、ピンがタップされた直後にsegueしたいので、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

私はこのことを忘れていたとは思わない!!!!!!ありがとう@マット –

関連する問題