cs193p の割り当て 5 の最後の部分を完了しようとしています (リンク)
このアプリは、Flickr から人気のある場所を選択し、それらの場所の写真を地図上にプロットします。
それは言うタスク5cです
マップ上の各注釈には、次の内容を表示する吹き出しが必要です。選択した写真の完全な画像を表示する開示ボタン (ユーザーがテーブルから写真を選択した場合とまったく同じ)、またはその場所の写真のリストを表示する開示ボタン (ユーザーがその場所を選択した場合とまったく同じ)テーブルから)。
吹き出しを表示し、吹き出しにサムネイルを読み込む前の部分は既に完了しています。
私はすでに mapViewController を mapView のデリゲートとして設定しており、ピンをクリックすると didSelectAnnotationView メソッドが呼び出されるため、機能していることがわかります。コールアウトの開示アクセサリ。
ただし、メソッド calloutAccessoryControlTapped (同じ VC) も定義しましたが、このメソッドは呼び出されません。まったく。現時点では、そこに NSLog があるだけで、何も表示されません。
何も言いませんが、もっと奇妙にするために、機能しない数百の注釈のうち、機能する注釈が 1 つあります。
最初の 1 つの注釈がボタンを起動しますが、それ以外は何もしません。それは最初の注釈だからですか?ボタンはそのためだけに発射されますか?
コードを投稿したかったのですが、それがどれほど関連しているかはよくわかりません:
@interface flickrthingMapViewController ()<MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapview;
@end
@implementation flickrthingMapViewController
@synthesize delegate = _delegate;
@synthesize mapview = _mapview;
@synthesize annotations = _annotations;
- (void)viewDidLoad
{
[super viewDidLoad];
self.mapview.delegate = self; //remembered to set the delegate
}
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)aView
{
if (![aView.annotation isKindOfClass:[flickrthingPlaceAnnotation class]])
{
UIImage *image = [self.delegate flickrthingMapViewContoller:self imageForAnnotation:aView.annotation];
[(UIImageView *)aView.leftCalloutAccessoryView setImage:image];
}
UIButton *buttonToViewDetails = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
aView.rightCalloutAccessoryView=buttonToViewDetails;
}
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)aView calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"hello");
}
私が尋ねた他のすべての質問は、私が何かばかげたことをしたことが判明しました。しかし、私はそれを何年も見て座っていて、見ることができません!
あなたの洞察に感謝します!