我有一個地圖,多個註釋被放在。當我選擇一個註釋,然後點擊披露按鈕時會出現一個包含表視圖的新視圖(DetailViewController)。 我想要什麼,當DetailViewController打開時,直接選定註釋的描述。檢測選定的地圖註釋Xcode
回答
使用委託方法didSelectAnnotationView:
,推動detalViewController到您的導航控制器
這將幫助。
使用該委託方法:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
AnnotationView *annotation = (AnnotationView *)mapView.annotation;
NSInteger *yourIndex = annotation.myindex;
}
,推動您的導航控制器
我做到了,但如何讓包含選定註釋的細節的行變成被選中?! – fadd
看到我編輯的答案 –
時的MKMapView
@interface ClassVC()
{
int notationTag;
}
- (void)viewDidLoad
{
notationTag = 0; //initialisation of variable
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
// If it's the user location, just return nil.
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
// Handle any custom annotations.
if ([annotation isKindOfClass:[MKPointAnnotation class]])
{
// Try to dequeue an existing pin view first.
MKAnnotationView *pinView = (MKAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@"CustomPinAnnotationView"];
if (!pinView)
{
// If an existing pin view was not available, create one.
pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomPinAnnotationView"];
pinView.canShowCallout = YES;
pinView.image = [UIImage imageNamed:@"mallicon.png"];
pinView.calloutOffset = CGPointMake(0, 32);
//pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.tag = notationTag;
} else {
pinView.annotation = annotation;
}
notationTag++;
return pinView;
}
return nil;
}
選擇MKAnnotation然後calloutAccessoryControlTapped您可以使用檢測下面的代碼。 ,
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
ContactDetails *contact=[[ContactDetails alloc] initWithNibName:@"ContactDetails" bundle:nil];
contact.name1Str = [NSString stringWithFormat:@"%d",view.tag];
}
在接下來的視圖
添加這行代碼
NSIndexPath *index =[NSIndexPath indexPathWithIndex:[name1Str intValue]];
[tableView selectRowAtIndexPath:index animated:NO scrollPosition:UITableViewScrollPositionMiddle];
在我來說,我用下面的代碼重新加載,你可以嘗試太
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
self.mapView.centerCoordinate = view.annotation.coordinate;
NSLog(@"======Tag====%ld", (long)view.tag);
NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:[view tag] inSection:0];
[self.collectionView scrollToItemAtIndexPath:rowToReload atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
}
好的答案它節省了我的時間pinView.tag = i;這段代碼很棒 –
- 1. 添加註釋到地圖做出選擇時xcode
- 2. 如何檢測地圖上的點擊註釋Pin?
- 3. 自定義註釋處理器 - 使用註釋檢測方法
- 4. iPhone地圖視圖自定義註釋
- 5. 在flex中檢測註釋
- 6. Skobbler地圖中的自定義註釋
- 7. 從表格視圖中選定行打開地圖註釋
- 8. 顯示地圖查看選定半徑的註釋
- 9. Google地圖的Spiderfier註釋
- 10. 自定義谷歌地圖註釋
- 11. 鈦 - 自定義地圖註釋泡沫?
- 12. 註釋開始的節拍檢測?
- 13. TFS註釋去除檢測的代碼
- 14. 自定義地圖註釋標註圖像
- 15. 雙擊地圖註釋
- 16. 註釋谷歌地圖
- 17. 地圖註釋數組
- 18. 添加地圖註釋
- 19. iOS地圖註釋問題
- 20. Xcode中的多行註釋
- 21. 將地圖添加到地圖時使用自定義註釋
- 22. 地圖拼圖中的多個註釋
- 23. Swift Firebase在地圖註釋上下載註釋圖片點擊
- 24. 選擇特定註釋
- 25. 檢查在mkmapview上點擊了哪個地圖視圖註釋
- 26. MKMapView崩潰選擇的註釋,然後立即釋放地圖視圖
- 27. Mapkit,如何檢測註釋已加載
- 28. 如何檢查地圖上的重複註釋
- 29. 註釋地塊
- 30. 在地圖註釋中顯示圖像
我這樣做,但如何讓包含所選註釋詳細信息的行是否已被選中? – fadd
您可以通過多種方式來完成它。您只需要爲每個註釋設置序列號並將序列號傳遞給detailViewController。 對於選擇設置一排,下面的鏈接將幫助 http://stackoverflow.com/questions/1323474/how-do-i-select-a-uitableviewcell-by-default –
是紈絝子弟,我給每個引腳序列號已經。但如何檢測與我選擇了? – fadd