2010-05-18 31 views
0

我有兩個視圖。第一個是帶有一些註釋的MKMapView。點擊一個UIButton推動堆棧上的第二個視圖。這有一個UITableView與註釋列表相對應的映射註釋。所以,當你點擊刪除按鈕時,我怎樣才能在另一個視圖中調用我的MKMapView,以便我可以刪除註釋。我的MKMapView在我的應用程序委託中以及我的當前類中聲明。我嘗試使用以下,但它不工作:從另一個視圖中移除MKMapView的註釋

RideAppDelegate *appDelegate = (RideAppDelegate *)[[UIApplication sharedApplication] delegate]; 
Annotation *ano; 
CLLocationCoordinate2D anoPoint; 
anoPoint.latitude = [[eventToDelete valueForKey:@"latitude"] doubleValue]; 
anoPoint.longitude = [[eventToDelete valueForKey:@"longitude"] doubleValue]; 
ano = [[[Annotation alloc] init] autorelease]; 
ano.coordinate = anoPoint; 
[appDelegate.ridesMap removeAnnotation: ano]; 
[appDelegate release]; 

我必須嘗試訪問我的其他觀點的MKMapView是否有誤?

回答

1
  • ridesMap必須是MKMapView,它必須是appDelegate的ivar。這是一個財產(保留)?是否創建並分配了self.ridesMap = [[MKMapView alloc] init]或類似的?
  • 您確定Annotation遵循MKAnnotation協議嗎?

(爲什麼釋放的appDelegate?你不擁有或保留。)

+0

是的,我相信,註釋如下MKAnnotation協議,因爲我能創建使用該註釋。 ridesMap是一個保留的財產。我應該在哪裏創建它並像上面顯示的那樣分配MKMapView? – 2010-05-18 06:13:17

+0

如果它需要是你的appDelegate中的一個屬性,可能你應該在applicationDidFinishLaunching中創建它。如果它不是活動對象,則不能使用它。 – 2010-05-18 07:50:56

相關問題