Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在显示UIViewController之前预加载MKMapView?_Ios_Swift_Mapkit_Mkmapview - Fatal编程技术网

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)
从不。仅当我在不等待die
finishedHandler
的情况下呈现
UIViewController
时,为什么不将映射的委托添加到父视图控制器,并且mapViewDidFinishLoadingMap(:\)将在父视图中调用,然后呈现您的mapViewController@HadyNourallah是的,我能做到,但这并没有改变地图没有加载的事实(看看编辑,只是编辑了问题)