/**
*向地图窗口添加标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
*@param annotation 要添加的标注
*/
- (void)addAnnotation:(id <BMKAnnotation>)annotation;
/**
*向地图窗口添加一组标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View *@param annotations 要添加的标注数组
*/
- (void)addAnnotations:(NSArray *)annotations;addAnnotation是每次添加一个标注,之后在- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation;
中paopaoView的显示内容是不同的,addAnnotation是添加一个标注数组,之后(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation;
paopaoview显示的内容是数组最后一个元素的内容。
下面这两个方法(void)mapView:(BMKMapView *)mapView didAddAnnotationViews:(NSArray *)views; 和
//pragma mark paopao按钮点击
-(void)btnClick:(UIButton *)button{
for (int i = 0; i < self.annotations.count; i++) {
HXMenDList *menDList = self.annotations[i];
if (button.tag == [menDList.ID integerValue]) {
HXDetailsController *detailsV = [[HXDetailsController alloc] init];
detailsV.menDList = menDList; //计算所选坐标和当前位置之间的距离 CLLocationCoordinate2D
currentAnno = CLLocationCoordinate2DMake([menDList.weid doubleValue], [menDList.jind doubleValue]); BMKMapPoint mp1 =
BMKMapPointForCoordinate(currentAnno);
BMKMapPoint mp2 = BMKMapPointForCoordinate(self.userLocation.location.coordinate);
CLLocationDistance distance = BMKMetersBetweenMapPoints(mp1, mp2);
distance = [Tools formatDistance:distance];
menDList.distance = distance;
NSLog(@"detailsV.menDList.dianm==%@",detailsV.menDList.dianm);
[self.navigationController pushViewController:detailsV animated:YES];
}
}
}
就可以跳转到对应的界面了。
//pragma mark 设置状态栏的为白色
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
//pragma mark 设置状态栏的为白色
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
-(void)viewDidLoad {
[super viewDidLoad];
__weak typeof (self) weakSelf = self;
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.interactivePopGestureRecognizer.delegate = weakSelf;
}
}
iOS7之后可以添加一个手势,要设置代理UIGestureRecognizerDelegate
//支持右滑手势
if ([[[UIDevice currentDevice] systemVersion] floatValue]>=7) {
self.navigationController.interactivePopGestureRecognizer.delegate=self;
}
解决办法:new和delete是c++里的语法。要么把源文件后缀名改成.mm要么用c的malloc。这其实是objc开发的问题了,不算百度SDK的问题。