我试图通过函数func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
将数据传递到第二个VC上的标签。
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
print("Annotation selected")
if let annotation = view.annotation as? POIAnnotations {
let destVC : ShopDetailViewController
destVC.shopName.text = annotation.title!
print("Your annotation title is: \(annotation.title!)")
}
}
当我将shopName.text
设置为annotation.title
时,我收到错误消息:
Constant' destVC'在初始化之前使用。
我不太确定出了什么问题。
答案 0 :(得分:7)
您只声明了变量destVC,而没有初始化它。您需要在使用变量之前直接或通过故事板对变量进行实例化,例如:这样:
let destVC = ShopDetailViewController()
或
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let destVC = storyboard.instantiateViewController(withIdentifier: "ShopDetailViewController") as! ShopDetailViewController
答案 1 :(得分:2)
错误很明显,表示您尚未初始化constnt destVC
并尝试使用其属性shopName
。因此,在访问其属性之前初始化destVC
将删除错误。
如果您使用storyboard
let destVC = self.storyboard?.instantiateViewController(withIdentifier: "IdentifierOfVC") as! ShopDetailViewController
如果您使用xib
let destVC = ShopDetailViewController()