Когда я нажимаю на правой выноски на PIN-код, я хочу, чтобы перейти на новый контроллер вида с именем DetailsThemes
, однако, когда я делаю так:Нажмите другой вид, когда нажмите на rightCalloutAccessoryView
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
[self.navigationController pushViewController:self.detailsThemes animated:YES];
}
Я получил это ошибка:
Property detailsThemes not found on object of type 'ViewController *';
did you mean to access ivar 'detailsThemes'?
Хотя, detailsThemes
является экземпляром DetailsThemes
который является классом UIViewController, а также, в моем классе я сделал вызвать DetailsThemes
класс с @class DetailsThemes;
на верхней части файла, как Тхи s:
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@class DetailsThemes;
@interface ViewController : UIViewController<MKMapViewDelegate>
{
DetailsThemes * detailsThemes;
}
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end
EDIT:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"calloutAccessoryControlTapped: %@",view.annotation);
[self.navigationController pushViewController:self.detailsThemes animated:YES];
}
- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *identifier = @"ManageAnnotations";
MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [map dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView == nil) {
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
} else {
annotationView.annotation = annotation;
}
annotationView.enabled = YES;
[annotationView setAnimatesDrop:YES];
annotationView.canShowCallout = YES;
//annotationView.pinColor = ((ManageAnnotations *)annotation).pinColor;
annotationView.rightCalloutAccessoryView=[UIButton buttonWithType:UIButtonTypeInfoLight];
return annotationView;
}
Вы прочитали сообщение об ошибке? Прочтите дважды, у него есть объяснение. Вы должны объявить @property для получения подробной информации или доступа к ivar напрямую. –
Я сделал, ладно, теперь у меня все работает отлично, однако, когда я нажимаю на нужную информационную кнопку ПИН-кода, я ничего не получил, просмотр деталей не взимается. – Malloc
Является ли calloutAccessoryControlTapped фактически вызванным? Положите NSLog или точку останова в этом, чтобы быть уверенным. – Anna