マップピンの名前を変数に格納して、それを第2のVCのラベルに表示しようとしています。Swift:VCを通過するときにデータが変数に格納されていない
現在のところ、これは私が持っているものです。
FirstVC.swift
//Perform segue when callout has been tapped
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
self.performSegue(withIdentifier: "showAnnotationInfo", sender:view)
}
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
print("Annotation selected")
if let annotation = view.annotation as? POIAnnotations {
print("Your annotation title is: \(annotation.title!)")
// Instantiate ShopDetailViewController
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let destVC = storyboard.instantiateViewController(withIdentifier: "shopDetailVC") as! ShopDetailViewController
destVC.shopNameData = annotation.title!
print("Shop name data has the value: \(destVC.shopNameData)")
}
}
ShopDetailViewController.swift
class ShopDetailViewController: UIViewController {
@IBOutlet weak var shopName: UILabel!
var shopNameData = "data"
override func viewDidLoad() {
super.viewDidLoad()
self.shopName.text = self.shopNameData
print(shopNameData)
}
}
何が起こっている私はshopNameData
でannotation.title
を保存しようとすると、問題はない、です。
ただし、注釈をクリックすると、annotation.title
のデータはshopNameData
に保存されず、デフォルトのデータが表示されます。
私は私がここに間違って行ってきた場所がわからないんだけど。
EDIT
私はShopDetailViewController
を提示どこで用意しました。
ナビゲーションや存在のないコードがありませんか? –
どのように 'ShopDetailViewController'をプレゼンテーションしていますか? IBからのソートボードまたはコードからのperformSegue? –
@ WarifAkhandRishiチェックを編集します。 – daanyyaal