2011-10-17 75 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