У меня есть программа, которая создает аннотации карты с помощью кнопки «Раскрытие сведений о пользовательском интерфейсе», которая делает модальный переход к подробному представлению аннотации. Приложение было создано с использованием раскадровки.
Вот код для определения аннотаций:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PIN"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[button addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventTouchUpInside];
if ([annotation isKindOfClass:[MKUserLocation class]]) {
pin.animatesDrop = YES;
return nil;
}
else {
[pin setPinColor:MKPinAnnotationColorPurple];
}
pin.rightCalloutAccessoryView = button;
pin.animatesDrop = YES;
pin.canShowCallout = YES;
return pin;
}
Вот метод calloutAccessoryControlTapped
:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
NewClass *annView = view.annotation;
AnnotationView *detailView = [[AnnotationView alloc]init];
detailView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
detailView.buildingName = [NSString stringWithFormat:@"my dictionary is %@", annView.title];
detailView.desciptionText = annView.title;
[self presentViewController:detailView animated:YES completion:nil];
}
Наконец, вот метод prepareForSegue
:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"ShowMoreInfo"]){
AnnotationView *destViewController = segue.destinationViewController;
//destViewController.buildingName = ; set to name of building of selected annotation
//destViewController.desciptionText = ; set to description of building of selected annotation (from an array or from passed data)
destViewController.picName = ;
}
}
Как мне взять информацию из метода callOutAccessoryControlTapped
и установить значения в методе prepareForSegue
для этих значений?
Когда я использую точки останова для отслеживания значений данных, annView.title
содержит строковое значение, но оно никогда не присваивается значению в контроллере подробного представления для подробного представления аннотаций.
Будем признательны за любую информацию о том, как передать данные из выбранной аннотации в метод подготовки к переходу.