私は別のスウィフトファイルに名前Capitalを持つクラスを持っています。私の(ViewController)では、地図上の各ピンの位置、画像、タイトルなどを宣言します。ピンをタップするとcalloutAccessoryControlTappedがポップアップし、それは私がタップピンのタイトルを渡されたが、私はイメージを渡すことはできません私のDetailsViewController、に私に指示...マップ注釈から詳細ビューコントローラに画像を渡す
let Headquarters = Capital(title: "Headquarters", coordinate: CLLocationCoordinate2D(latitude: (some latitude), longitude: (some longitude)), info: "Our headquarters", image: "Location1")
そして私は私が完璧に働いていViewControllerからDetailViewController
にセグエ override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetails" {
let theDestination:DetailsViewController = segue.destinationViewController as! DetailsViewController
theDestination.toPass = (sender as! MKAnnotationView).annotation!.title! } }
私のクラスの資本
import MapKit
import UIKit
class Capital: NSObject, MKAnnotation {
var title: String?
var coordinate: CLLocationCoordinate2D
var info: String
var image: String?
init(title: String, coordinate: CLLocationCoordinate2D, info: String, image: String) {
self.title = title
self.coordinate = coordinate
self.info = info
self.image = image
}
}
そして、それは私が(それらを宣言する)のViewControllerでそれを持っている方法です
let Headquarters = Capital(title: "Headquarters", coordinate: CLLocationCoordinate2D(latitude: (some coordinate), longitude: (some coordinate)), info: "Our headquarters", image: "Location1")
そして
mapView.addAnnotations([Headquarters, BlahBlah, OtherStuff])
その後、私はピン
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
let identifier = "Capital"
if annotation.isKindOfClass(Capital.self) {
var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)
if annotationView == nil {
annotationView = MKAnnotationView(annotation:annotation, reuseIdentifier:identifier)
annotationView!.canShowCallout = true
annotationView!.image = UIImage(named: "pin")
let btn = UIButton(type: .DetailDisclosure)
annotationView!.rightCalloutAccessoryView = btn
} else {
annotationView!.annotation = annotation
}
let cpa = annotation as! Capital
annotationView!.image = UIImage(named:cpa.image!)
return annotationView
}
return nil
}
にそれらを入れて、それから、私は私が
私のイメージ名(複数のピンのそれぞれ)は私のMKAnnotationの中にあり、私はそれを文字列それをどうやって渡すことができますか? – Ekaterina96
MKAnnotation内に画像を保存する場所にコードを投稿できますか? – Chajmz
私の質問を編集しました: – Ekaterina96