我是iOS开发的新手,我正在为当地的河流创建一个地图应用程序。该应用的目的是允许用户通过选择不同的点来绘制河流上的路线。我正在使用MapKit来解决这个问题,但遇到了一些问题。我的主要问题是如何向注释添加按钮,以便一旦点击,将打开一个详细信息窗口,用户可以了解有关该点的更多信息并将其添加到旅行中。这是我的代码,任何想法都会有所帮助!
#import "ViewController.h"
#import "CoreLocation/CLLocation.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.mapView.delegate = self;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
// Add an annotation
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
point.coordinate = userLocation.coordinate;
point.title = @"Where am I?";
point.subtitle = @"I'm here!!!";
[self.mapView addAnnotation:point];
point.coordinate = CLLocationCoordinate2DMake(33.62258872997,-86.599988937378);
point.title = @"Civitan Park";
point.subtitle = @"Trussville, AL";
[self.mapView addAnnotation:point];
}
@end
答案 0 :(得分:1)
您的地图视图委托应实现–mapView:viewForAnnotation:
并返回一个具有其附件视图属性集的注释视图。通常的做法是将rightCalloutAccessoryView
属性设置为类型为UIButton
的{{1}}。映射委托也应该实现UIButtonTypeDetailDisclosure
,当用户点击附件视图中的按钮时,将调用-mapView:annotationView:calloutAccessoryControlTapped:
。然后,您可以将详细视图控制器推送到导航堆栈或其他任何您喜欢的位置。