为地图swift设置新区域时出错

时间:2018-05-17 23:16:58

标签: swift mapkit

在我的项目中,我想按下一个按钮,这是一个地址,在这样做后,它应该交换到我的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。

我无法理解他们中的哪一个是零。

1 个答案:

答案 0 :(得分:0)

在函数print(map)中尝试centerMapOnPin。也许打印nil

let mapvc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LocationVC") as! LocationVC

目前尚未加载map