iOS映射应用程序注释中的新视图

时间:2013-02-24 01:01:04

标签: ios

我是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

1 个答案:

答案 0 :(得分:1)

您的地图视图委托应实现–mapView:viewForAnnotation:并返回一个具有其附件视图属性集的注释视图。通常的做法是将rightCalloutAccessoryView属性设置为类型为UIButton的{​​{1}}。映射委托也应该实现UIButtonTypeDetailDisclosure,当用户点击附件视图中的按钮时,将调用-mapView:annotationView:calloutAccessoryControlTapped:。然后,您可以将详细视图控制器推送到导航堆栈或其他任何您喜欢的位置。