2011-10-17 66 views
0

我有一个应用程序3意见。我正在使用标签栏控制器来选择视图。UI标签栏mapView核心数据更新后刷新

我目前已将地图设置为缩放到最近的位置,其中包含所有注释。但是,当我在视图1中更新核心数据时,然后选择选项卡2,但注释引脚保持不变。即使我退出应用程序,针的颜色也会保持不变(它会根据数据状态更改颜色)。我可以更新它的唯一方法是放大,然后退出。

码我曾尝试:

[mapView release];

[mapView setNeedsDisplay];

[mapView removeAnnotation:tempAnnotation];

[mapView addAnnotation:tempAnnotation];

CLLocationCoordinate2D center = [mapView centerCoordinate];

[mapView setCenterCoordinate:center];

我甚至设置在地图 '正常' 的缩放级别,然后重新设定一个FlyTo坐标2倍,远在一次放大。

有没有办法刷新didFinishLoading等视图?

我可以将这些代码片段之一放在他错误的地方吗?

我也释放传递的数据等

是它只是标签栏缓存的页面?有没有办法强制刷新地图?

谢谢! (我是怎样的一个小白,所以如果你能帮助,请清楚的步骤,帮助我理解)

罗伯特

回答

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