Ich habe zwei verschiedene Pins auf meiner Mapview platziert. Ich habe eine Info-Taste an jedem. Die Info-Schaltflächen wechseln zu einem UIViewController, der eine Bildansicht (um ein Bild des Ortes aufzunehmen) und eine Textbeschriftung (um Informationen über den Ort zu halten) aufweist.Verschiedene Informationen für verschiedene Pin-Annotationen
Mein Problem ist, wie kann ich die Info und Bild abhängig davon, welche Pin Annotation Button ausgewählt wurde. Die letzte Funktion ist diejenige, die verwendet wird, um zum Info View Controller zu gelangen.
class GetToTheStart: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
//map view outlet
@IBOutlet weak var mapView: MKMapView!
//defining use of location manager
let myLocMgr = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
//setting up location request
myLocMgr.desiredAccuracy = kCLLocationAccuracyBest
myLocMgr.requestWhenInUseAuthorization()
myLocMgr.startUpdatingLocation()
myLocMgr.delegate = self
mapView.delegate = self
// coordinates of desired locations for pins
var zoo1 = CLLocationCoordinate2DMake(53.347439, -6.291820)
var town1 = CLLocationCoordinate2DMake(53.347247, -6.290865)
//setting up pin 1 annotation (the zoo)
var zoopin = MKPointAnnotation()
zoopin.coordinate = zoo1
zoopin.title = "Dublin Zoo"
zoopin.subtitle = "This this the zoo"
mapView.addAnnotation(zoopin)
//setting up pin 2 annotation (the town)
var townpin = MKPointAnnotation()
townpin.coordinate = zoo1
townpin.title = "Dublin town"
townpin.subtitle = "This this the town"
mapView.addAnnotation(townpin)
}
//setting up Pin callout button for segue
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
}
let reuseIdentifier = "pin"
var pin = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseIdentifier) as? MKPinAnnotationView
if pin == nil {
pin = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseIdentifier)
pin!.pinColor = .Red
pin!.canShowCallout = true
pin!.rightCalloutAccessoryView = UIButton(type: .DetailDisclosure)
} else {
pin!.annotation = annotation
}
return pin
}
//performing segue from info button to infoViewController
func mapView(mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
performSegueWithIdentifier("info", sender: view)
}
Während Code geben, Format es auch sonst wird es sehr schwierig sein, durch sie gehen ... –
Wenn Sie auf den Pin klicken Sie wissen müssen, um die Pin-Annotation entweder Stift mit dem Titel „Dublin Zoo“ geklickt wird oder "Dublin Stadt"? Ist das dein Problem? –
hat es dort neu formatiert und ein paar Kommentare hinzugefügt, so dass es einfacher sein sollte, zu folgen. Ja, das Problem ist, dass ich nicht herausfinden kann, wie man Informationen über den angeklickten Pin (d. H. Entweder den Zoo-Pin oder den Stadt-Pin) an den infoViewController sendet. –