Открыть представление, когда вызывается calloutAccessoryControlTapped - PullRequest
0 голосов
/ 09 июня 2011

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

С уважением

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

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

- (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];
}
0 голосов
/ 12 июля 2015

- (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; * 10171018 * 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 yieldSubviewToFront: viewSub];

}

...