MKAnnonationПросмотреть проблему прослушивания - PullRequest
1 голос
/ 16 сентября 2011

Я хочу перейти к следующему классу через нажатие на MKAnnotationView на MKMapView. Как я могу это сделать, пожалуйста, дайте пример кода для этого.

Я сделал этот код .. объяснил ниже ..

- (void)mapView:(MKMapView *)mapView1 didSelectAnnotationView:(MKAnnotationView *)customAnnotationView
{
       //Here Push to another view controller
}

Одна проблема заключается в том, что при нажатии на один элемент этот метод вызывает и он переходит к другому классу, но когда я возвращаюсь и снова нажимаю на тот же элемент, этот метод не вызывается.

Пожалуйста, помогите мне решить эту проблему ...

Заранее спасибо ...

1 Ответ

2 голосов
/ 16 сентября 2011

вам нужно реализовать этот метод: -

изм: -

Вам необходимо реализовать следующий метод.

 - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    NSLog(@"touch");
    [mapView deselectAnnotation:view animated:NO];
    firstVC *aa=[[[firstVC alloc]initWithNibName:@"firstVC" bundle:nil] autorelease];
    [[self navigationController] pushViewController:aa animated:YES];

}

 -(void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{
    NSLog(@"notouch");
    firstVC *aa=[[[firstVC alloc]initWithNibName:@"firstVC" bundle:nil] autorelease];
    [[self navigationController] pushViewController:aa animated:YES];

}

предыдущий: -

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{    
    CompanyDetail  *detail = [[CompanyDetail alloc] initWithNibName:@"CompanyDetail" bundle:nil];       
    [self.navigationController pushViewController:detail animated:YES]; 
}

Make sure you do 

UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 

в вашем - (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation метод

...