如何在我的mapview(主控)控制器中檢測到詳細視圖控制器已被解僱?我有一個地圖視圖與引腳和註釋。當rightCalloutAccessoryView在任何註釋上被輕敲時,通過performSegueWithIdentifier調用模態細節視圖控制器。順便說一句,我不知道這是否正確,但主視圖控制器和詳細視圖控制器通過導航控制器連接。如何檢測視圖控制器何時被解散?
我的目標是根據詳細視圖控制器上的用戶操作,對mapview(主視圖)執行條件操作。特別是如果他們點擊了刪除引腳功能,我想在控制返回到地圖視圖時刪除引腳。如果他們只需點擊完成按鈕,然後我想要引腳和註釋保持在屏幕上。
由於我知識有限,我可以刪除下面第二行的引腳,但問題是我可以看到引腳和註釋在右側的CALLOUTAccessorView圖標被點擊之後並且在詳細視圖之前被刪除顯示。所以這意味着如果用戶點擊細節屏幕上的完成按鈕,他們將返回到地圖視圖,並且已經移除了引腳和註釋。我只希望在用戶點擊刪除按鈕時刪除它。
[self performSegueWithIdentifier:@"PinDetail" sender:self];
[self.mapView removeAnnotation:MA];
所以我的問題真的是:
- 我在哪裏放在removeAnnotation代碼?在當前的位置,即使在詳細視圖出現之前,銷釘也會移除。
- 如何檢測詳細視圖上的刪除按鈕是否已被點擊?
謝謝。
看到我下面的post.When用戶點擊刪除按鈕調用if([m_Target respondsToSelector:m_Selector]){[m_Target performSelector:m_Selector withObject:nil];}這是什麼,但你的removeAnnotation方法,並關閉細節view.And如果用戶按完成按鈕,然後只需關閉詳細視圖,而不必調用removeAnnotation.Got? –
謝謝Nuzhat Zari。我會在早上更深入地探討這個問題。到目前爲止,我對於自己的進步感到非常滿意,但是我對obj-c的瞭解卻很少見。儘管我的代碼已經有一些委託代碼已經從各種來源複製過了,但是整個委託概念還沒有得到很好的處理。 – sftoparis