我正在使用MapView,並且放置了30個針位置,並且一切都很好。我使用rightCalloutAccessoryView在標註中添加了一個按鈕。這裏的按鈕代碼:創建註釋數組以便在地圖上製作不同的標註視圖
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.rightCalloutAccessoryView = rightButton;
[rightButton addTarget:self action:@selector(rightButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
return pinView;
}
這工作正常,並調用「rightButtonPressed」方法。下面是方法的實現:
-(IBAction) rightButtonPressed:(id)sender
{
NSLog(@"button clicked");
MapViewController *thisMap = (MapViewController *)[[UIApplication sharedApplication] delegate];
DetailViewController *dvc = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
[thisMap switchViews:self.view toView:dvc.view];
}
所以,你看,任何時候我觸碰任何一個按鈕從所有30個引腳標註,它進入了同樣的觀點(DetailViewController)。我希望每個按鈕都有它自己的視圖來切換到(這是我要放置「到這裏的路線」和「來自這裏的路線」等位置以及商店地址和名稱的位置)。
我意識到我可以製作30個視圖並製作30種適用於每個引腳的不同方法,但我知道必須有一個更簡潔的代碼來處理數組。
可能的某些數組可以在DetailViewController的UILabel中調用,因此它只會加載適當的信息並指示相應的位置。
這可能是一個很大的問題,我已經四處尋找一些教程,但沒有找到任何確切回答問題的東西。如果有人能讓我開始(或者甚至指向正確的方向),我會非常感激。
太好了!這比我想象的要容易得多(我仍然讓自己熟悉地圖視圖委託的方法)。我現在擁有的一個問題(我以前的方法也是這樣)是程序和一切正常,但在'[thisMap switchViews:self.view toView:dvc.view]'這行';'它給了我一個警告,即''MapViewController'可能不會響應'switchViews:toView:',即使它有。現在只想清除它,以防它稍後成爲問題。非常感謝! – MillerMedia
確保您在MapViewController.h(接口)文件中聲明瞭switchViews方法。 – Anna
自從switchViews方法在' - (void)mapView'方法中被調用後,我很困惑,聲明它的語法是什麼?我知道如何在自己的方法上聲明一個方法,但是這樣的事情呢? (對不起,我仍然在學習......) – MillerMedia