1

我对 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
4

1 回答 1

1

您的地图视图委托应实现–mapView:viewForAnnotation:并返回一个注释视图,该注释视图设置了其附件视图属性之一。正常的事情是将rightCalloutAccessoryView属性设置为UIButton类型为UIButtonTypeDetailDisclosure. 您的 map delegate 还应该实现-mapView:annotationView:calloutAccessoryControlTapped:,当用户点击附件视图中的按钮时将调用它。然后,您可以将详细视图控制器推送到导航堆栈或您喜欢的任何其他内容上。

于 2013-02-24T03:42:59.380 回答