如何在每个viewWillAppear上强制刷新iOS上的MKMapView

时间:2013-09-02 20:43:34

标签: ios mkmapview

我在tabbarcontroller的标签中有一张地图。用户可以转到另一个选项卡并重新设置首选项,我需要在用户返回时重新绘制地图。我目前使用此方法清理并重新绘制我的新注释:

- (IBAction)refreshTapped:(id)sender {
    //Clean out old annotations
    for (id<MKAnnotation> annotation in _mapView.annotations) {
        [_mapView removeAnnotation:annotation];
    }
    //THIS Adds the new annotations
    for (MyLocation *annotation in self.myLocationsToSort) {
        //Add annotation to mapview
        [_mapView addAnnotation:annotation];

    }

}

问题是我在mapviewDidFinishLoading中关闭了UIActivityIndi​​cator。因此,第二次用户返回到地图视图时,指示符永远不会被删除。是否应该在我的绘图方法结束时删除该指标,还是应该以某种方式强制视图重新加载地图视图,从而再次调用mapviewDidFinishLoading方法?

1 个答案:

答案 0 :(得分:0)

我会选择第一个选项,只需检查self.view.subviews中是否存在活动指示符,并在完成绘制所有新注释后删除它。