Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 单击rightCalloutAccessoryView时推送另一个视图_Objective C_Uiviewcontroller_Ios5_Storyboard - Fatal编程技术网

Objective c 单击rightCalloutAccessoryView时推送另一个视图

Objective c 单击rightCalloutAccessoryView时推送另一个视图,objective-c,uiviewcontroller,ios5,storyboard,Objective C,Uiviewcontroller,Ios5,Storyboard,当我单击PIN上的右侧标注时,我想移动到名为details mes的新视图控制器,但是,当我这样做时: -(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { [self.navigationController pushViewController:self.detailsThemes

当我单击PIN上的右侧标注时,我想移动到名为
details mes
的新视图控制器,但是,当我这样做时:

-(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
是UIViewController类
detailsThemes
的一个实例,但在我的类中,我确实使用
@class detailsThemes调用了
detailsThemes
如下所示:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@class DetailsThemes;

@interface ViewController : UIViewController<MKMapViewDelegate> 
{
    DetailsThemes * detailsThemes;
}

@property (weak, nonatomic) IBOutlet MKMapView *mapView;

@end
#导入
#进口
@课堂细节时间;
@界面ViewController:UIViewController
{
详细时间*详细时间;
}
@属性(弱,非原子)IBMMapView*mapView;
@结束
编辑:

-(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;

}
-(void)映射视图:(MKMapView*)映射视图注释视图:(MKAnnotationView*)视图调用访问控制点击:(UIControl*)控制
{
NSLog(@“calloutAccessoryControlTapped:%@”,view.annotation);
[self.navigationController pushViewController:self.details动画时间:是];
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释{
静态NSString*标识符=@“ManageAnnotations”;
MKPinAnnotationView*annotationView=(MKPinAnnotationView*)[map dequeueReusableAnnotationViewWithIdentifier:identifier];
如果(注释视图==nil){
annotationView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:标识符];
}否则{
annotationView.annotation=注释;
}
annotationView.enabled=是;
[注释视图集动画下拉:是];
annotationView.canShowCallout=是;
//annotationView.pinColor=((ManageAnnotations*)annotation.pinColor;
annotationView.rightCalloutAccessoryView=[UIButton按钮类型:UIButtonTypeInfoLight];
返回注释视图;
}

在您的
视图加载方法中,您必须首先分配
详细信息时间,然后在调用中使用它。如果仍然未成功,请发布Callout AccessoryView的代码

您是否阅读了错误消息?读两遍,它有解释。您必须声明@property以获取详细信息,有时也可以直接访问ivar。我这样做了,好吧,现在一切都很好,但是,当我单击PIN的右信息按钮时,我什么都没有,详细信息视图不收费。Callout AccessoryControlTapped是否真的被调用?在里面放一个NSLog或断点。嗨,我已经编辑了我的帖子,实际上,
calloutAccessoryControlTapped
被调用了,这就是为什么我有点困惑的原因,我已经为details类声明了一个属性,但是我什么也没有得到,当我点击PIN的info按钮时细节视图没有被推上。