Mapbox selectAnnotation不能在ViewDidLoad中工作或首次在ViewDidAppear中工作

时间:2015-08-05 15:24:41

标签: ios objective-c mapbox

我有一个主 - 详细信息应用程序,我的详细信息页面是一张地图。当我单击主列表中的元素时,会显示包含整串标记的地图,将缩放/平移缩放到特定位置,并弹出描述此位置的注释。

实施非常简单,所以我想。在我的viewDidAppear中,我浏览了mapview中的注释列表,只需调用[mapView selectAnnotation: myAnnotation animated: FALSE]即可。但不是第一次!

我在ViewDidLoad中填充我的地图,并且第一次调用ViewDidAppear时,mapView.annotations数组仍为空。即使我第一次进入详细信息视图,是否有一种简单的方法可以使其工作?或者我是否必须在AppDelegate中创建并填充地图?

2 个答案:

答案 0 :(得分:1)

尝试使用MGLMapViewDelegate,特别是

if (task.getQueue().isEmpty()){
        task.schedule(new Runnable() {
            @Override
            public void run(){
                 // do my awesome stuff
            }
        }, FIXED_DELAY, TimeUnit.MILLISECONDS);
    }

答案 1 :(得分:0)

也许你可以在DetailViewController定义一个方法,那么当你触发类似的tableview&#39的方法; S didselect或prepareForSegue,你必须得到DetailViewController' S实例,最后,你可以用这个实例来打电话给你用户定义的方法。