Ios 如何在显示UIViewController之前预加载MKMapView?
我以模式呈现了一个Ios 如何在显示UIViewController之前预加载MKMapView?,ios,swift,mapkit,mkmapview,Ios,Swift,Mapkit,Mkmapview,我以模式呈现了一个UIViewController,其中包含一个MKMapView。但是只有在MKMapView完成加载/渲染特定区域后,才应显示UIViewController。因此,如果显示了UIViewController,则地图应该已经存在。我需要加载它,以便在那些UIViewController之间平稳过渡。当然,我会向用户显示UIActivityIndicatorView 我所做的: let mapViewController = UIStoryboard(name: "Main",
UIViewController
,其中包含一个MKMapView
。但是只有在MKMapView
完成加载/渲染特定区域后,才应显示UIViewController
。因此,如果显示了UIViewController
,则地图应该已经存在。我需要加载它,以便在那些UIViewController
之间平稳过渡。当然,我会向用户显示UIActivityIndicatorView
我所做的:
let mapViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "mapView") as! MapViewViewController
let _ = mapViewController.view //viewDidLoad gets called and views are loaded
mapViewController.set(region: Region)
self.mapInfoCard.loadingIndicator.startAnimating()
//called on MKMapView´s mapViewDidFinishLoadingMap(_ mapView: MKMapView) delegate function
mapViewController.finishedHandler = {
self.mapInfoCard.loadingIndicator.stopAnimating()
self.present(mapViewController, animated: true, completion: nil)
}
但是从未调用
mapViewDidFinishLoadingMap(uMapView:MKMapView)
。mapView(\uMapView:MKMapView,regionWillChangeAnimated:Bool)
委托函数在我设置区域后被调用,但是mapView将加载Map(\uMapView:MKMapView)
或mapViewDidFinishLoadingMap(\uMapView:MKMapView)
从不。仅当我在不等待diefinishedHandler
的情况下呈现UIViewController
时,为什么不将映射的委托添加到父视图控制器,并且mapViewDidFinishLoadingMap(:\)将在父视图中调用,然后呈现您的mapViewController@HadyNourallah是的,我能做到,但这并没有改变地图没有加载的事实(看看编辑,只是编辑了问题)