2011-09-20 88 views
0

我正在显示2个地点之间的路线。我的项目是一个基于导航的项目。在viewWillAppear:方法中,我使用位置管理器跟踪用户的当前位置。在 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation方法我得到用户的当前位置的坐标。Mapview刷新不起作用

我用这个绘制地图。现在,当我回到上一个视图并返回地图视图时,它不会加载用户位置。它不打电话- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation方法。

我该如何解决这个问题?我每次来这个班都需要获得地图路线。

在此先感谢

+0

您是在设备上还是在模拟器中看到此问题?模拟器并不总是发布定期的位置更新。仅在模拟器中使用 – mjisrawi

+0

。它显示的当前位置是cupertino。这是第二次,但我点击“地图”按钮,它不再上传的位置。 – cancerian

回答

0

我要回答自己这个问题还有:

我看到关于如何重置视图的帖子,重绘等。我还算层(不是新)对语言没有经验,所以我所做的只是一种破解,但它起了作用。我希望你使用这个,如果你必须,但找到一个更好的解决方案。

视图控制器:

- (void)viewWillAppear:(BOOL)animated { 

    [super viewWillAppear:animated]; 

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],2587600.0, 2587600.0); 

} 

- (void)viewWillDisappear:(BOOL)animated { 

    [super viewWillDisappear:animated]; 

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],5.0, 5.0); 
} 

所以,当视图的叶子,还有...查看,然后将地图放大甚远。当视图返回查看,在恢复数据时,瞧。你的里程可能会有所不同,但是这种方法对于我需要做的事完全适用。

而这根本不是一个震撼的效果。它是无缝的。从UI的角度来看,没有什么变化。

干杯! Robert