請幫助我解決這個問題。我有一個MKMapView約200註釋。當我點擊其中一個時,一個細節視圖被推入UINavigationController,所以MKMapView被隱藏。在瀏覽呈現的詳細視圖時,我得到內存警告並且隱藏的視圖被卸載。在關閉顯示的詳細信息視圖後,再次加載MKMapView的視圖,但沒有註釋可見(用戶位置藍色泡泡除外)並且焦點重置爲默認值。 [mapView:viewForAnnotation:]不會被調用。MKMapView在卸載並加載後(內存警告)忽略註釋
即使我刪除viewDidUnload中的所有註釋並在viewDidLoad中插入新註釋,但即使爲每一個調用了[mapView:viewForAnnotation:],MKMapView也不會顯示它們。
任何想法如何使其行爲並保持相同的可見地圖矩形後卸載&加載?非常感謝你。
編輯 - 解決!問題是在initWithNibName,我得到
map =(MKMapView *)[self.view viewWithTag:TAG_MAP];
從那一刻起,我只和'地圖'變量一起工作。但重裝後,變量顯然指向了一個無效的對象。所以我將上面的命令移到了viewDidLoad,現在它可以工作。感謝克雷格指點我的好方向!
你說得對,我正在從MKMapView中分離出來(或者更確切地說,我曾與原始的一個合作,顯示出來;我不明白新的一個來自哪裏,因爲initWithNibName在卸載和加載過程中沒有被調用,但無論如何,它現在可以工作:-)謝謝! – user1418166
這似乎是一個奇怪的方式來獲得一個子視圖的連接。通常情況下,您需要添加一個插座並使用InterfaceBuilder從您拖動到主視圖和該插座的MKMapView建立連接。你有沒有使用標籤有一個很好的理由? – Craig