Информация о местоположении пользователя Mapkit для аннотации булавки для близлежащих больниц

Мне нужно отобразить информацию о больнице в пользовательском представлении. Когда я нажимаю аннотационный штифт, он отображает адрес в пользовательском представлении, но всякий раз, когда я нажимаю другой штифт, он показывает тот же адрес в пользовательском представлении. Я попробовал для этого приведенный ниже код. Заранее спасибо.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view      calloutAccessoryControlTapped:(UIControl *)control
{
    name=[place objectForKey:@"name"];
    vicinity =[place objectForKey:@"vicinity"];


    self.myModalView = [[UIView alloc] initWithFrame:CGRectMake(0, 59, 320, 300)] ;

    [self.view addSubview:self.myModalView];
    [self.myModalView setBackgroundColor:[UIColor whiteColor]];
    [self.myModalView setBackgroundColor:[UIColor redColor]];
    self.btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.btn addTarget:self
                  action:@selector(back:)
        forControlEvents:UIControlEventTouchUpInside];
    [self.btn setTitle:@"Dismiss" forState:UIControlStateNormal];
    self.btn.frame = CGRectMake(0, 30, 80, 30);
    [self.myModalView addSubview:self.btn];

    _lblName=[[UILabel alloc]initWithFrame:CGRectMake(20, 120, 280, 60)];
    self.lblName.numberOfLines=5;

    self.lblName.text=name;
    NSLog(@"%@",self.lblName.text);
    [self.myModalView addSubview:_lblName];

    _lblDes=[[UILabel alloc]initWithFrame:CGRectMake(20, 200, 280, 80)];
    self.lblDes.numberOfLines=5;
    self.lblDes.text=vicinity;
    [self.myModalView addSubview:_lblDes];

}

person user3074399    schedule 19.02.2014    source источник
comment
Как устанавливается place? В этом методе затронутая аннотация доступна через view.annotation. Вот откуда вы должны получать данные.   -  person    schedule 19.02.2014


Ответы (1)


Вы должны использовать это для настройки вашего annotationView:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation

и работайте с выноской:

@property (retain, nonatomic) UIView *rightCalloutAccessoryView;
@property (retain, nonatomic) UIView *leftCalloutAccessoryView;

Надеюсь, это поможет

person Nicolas Bonnet    schedule 19.02.2014
comment
Я уже добавил их в этот метод делегата. Но когда я вызываю метод calloutAccessoryControlTapped, он отображает адрес предыдущей аннотации. Пожалуйста, проверьте это и извините за задержку комментария. - person user3074399; 26.02.2014