Открыть представление, когда вызывается calloutAccessoryControlTapped

Как я могу открыть представление, когда я нажал кнопку аннотации с навигационной кнопкой, чтобы вернуться к моему mapkit и передать некоторые параметры представлению?

С уважением

2 ответа

Решение

Я нашел решение. Внутри:

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

Добавлять:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[btn addTarget:self action:@selector(pinTouched:) forControlEvents:UIControlEventTouchUpInside];

Тогда есть функция, чтобы открыть желаемый вид:

-(void)pinTouched:(UIButton *)sender
{
myView.transform  = CGAffineTransformMakeScale(.01, .01);
[self.view addSubview:myView];
}

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id) аннотация {

.........

//важный

// в противном случае calloutAccessoryControlTapped не вызывается

pin.canShowCallout = YES;

pin.calloutOffset = CGPointMake (-10, -10);

UIImageView * leftIconView = [[UIImageView alloc] initWithImage: [UIImage imageNamed: @ "some.png"]];

leftIconView.backgroundColor = [UIColor clearColor];

leftIconView.contentMode = UIViewContentModeScaleAspectFit;

leftIconView.frame = CGRectMake (0, 0, 40, 40);

pin.leftCalloutAccessoryView = leftIconView;

....

....

возвратный штифт;

}

- (void) mapView: (MKMapView *) mapView annotationView: (MKAnnotationView *) представление calloutAccessoryControlTapped: (UIControl *) control {

// постучал аннотацией

float viewWidth = 100;

float viewHeight = 300;

float viewX = 50;

float viewY = 50;

CGRect viewRect = CGRectMake (viewX, viewY, viewWidth, viewHeight);

UIView * viewSub = [[UIView alloc] initWithFrame: viewRect];

viewSub.backgroundColor = [UIColor redColor];

viewSub.tag = 666;

[self.view addSubview: viewSub];

[self.view takeSubviewToFront: viewSub];

}

Другие вопросы по тегам