2010-01-13 21 views
1

我有一個MKMapView的問題,它被放置在一個UITabBarController的第一個位置的全尺寸視圖。在視圖顯示之前,我將幾個註釋添加到mapView。一切都很好。iPhone - 與MKMapView實例的問題

當我更改選項卡(使mapView不在視圖中)並切換回帶有mapView的選項卡時,所有註釋都消失了,它看起來像將mapView重置爲默認設置。

調試後,我發現,當我切換回到帶有mapView的選項卡時,對mapView對象的引用指向與以前完全不同的地址。我假設,mapView已經在離開標籤後被釋放,但我完全不知道爲什麼?

在此先感謝您的答覆!

問候, 塞巴斯蒂安

回答

3

你在哪裏把你的地圖註解初始化代碼?在-viewDidUnload中,你可能將mapView設置爲零,不是?如果是這樣,請確保在-viewDidLoad中再次初始化視圖時,您(重新)添加註釋。

如果你有代碼,那也有幫助。

+0

註解的座標由NSURLRequest加載。當請求準備就緒時,NSNotification被髮布並且註解由mapView的控制器中的方法處理並被添加到地圖中。但在-viewDidLoad我不重新加載它們,也許這是錯誤。 – schaechtele 2010-01-13 20:54:27

+0

你在哪裏創建和執行NSURLRequest?您應該在-viewDidLoad中重新加載。 AFAIK,視圖(大部分時間)設置爲零,當它離開屏幕時(這就是爲什麼它發生在你改變標籤時) – 2010-01-13 21:38:35

1

因爲它使用的內存太多,所以它正在被釋放。
您應該在模型中保留關於視圖的所有信息(註釋,地圖區域)
因此,您可以在viewDidLoad中預設它。

+0

有沒有可能不調用-viewDidUnload?因爲我在那裏放了一個斷點,這是從未到達的。 – schaechtele 2010-01-13 20:55:34

+0

然後也許你正在實例化視圖兩次..檢查你創建控制器的位置 – CiNN 2010-01-14 17:50:58

0

我將註釋的加載添加到-viewDidLoad,並認爲它現在可以正常工作。謝謝你的幫助!