在我的项目中,我想按下一个按钮,这是一个地址,在这样做后,它应该交换到我的mapVC并将地图置于点击的地址中心。 按下按钮时调用的其中一个功能如下:
func adressfunc(){
let mapvc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LocationVC") as! LocationVC
CLGeocoder().geocodeAddressString(self.adresse, completionHandler: { (placemarks, error) -> Void in
if let placemark = placemarks?[0] {
let location = placemark.location!
print("location", location)
mapvc.centerMapOnPin(selectedPin: location)
}})
}
在mapVC中我有函数centerMapOnPin:
func centerMapOnPin (selectedPin: CLLocation){
let newregion = MKCoordinateRegionMakeWithDistance(selectedPin.coordinate, regionRadius, regionRadius)
print(selectedPin, "pinsel")
print( newregion)
map.setRegion(newregion, animated: true)
}
在两个函数中打印位置证明我已经正确传递了位置数据,但不知怎的,我得到了错误 map.setRegion(newregion,animated:true) 这说明在打开一个可选项时意外地发现了nil。
我无法理解他们中的哪一个是零。
答案 0 :(得分:0)
在函数print(map)
中尝试centerMapOnPin
。也许打印nil
。
let mapvc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LocationVC") as! LocationVC
目前尚未加载map
。