2012-03-30 10 views
0

私は大学のプロジェクト用のiPhoneアプリケーションを開発しています。私はAppleのMapCalloutsコードを見てきましたが、実装するのは実現可能ではありません。私の地図の吹き出しはクリックされたとき画像を表示しません

これまでのところ、私のコードは地図を表示し、注釈を落とし、タイトルを表示し、正しい呼び出しボタンを表示します。しかし、これは私が問題に遭遇するところです。

吹き出しボタンを押すと、空の表示コントローラーが表示されますが、タップされた吹き出しごとに別の画像が表示されるはずです。これはこれまで行われていません。

私は以下の私のコードを追加しました:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view 
     calloutAccessoryControlTapped:(UIControl *)control 
{ 
    //NSUInteger tag = ((UIButton *)control).tag; 

    if (self.detailController==nil) 
    { 
     DetailViewController* detailViewController = [[DetailViewController alloc] init]; 
     [self.navigationController pushViewController:detailViewController animated:YES];    
    } 

    // self.detailController.tag =1; //to identify image required 
    // self.detailController.tag = tag; 

    [self.navigationController pushViewController:detailController animated:YES]; 
} 
+0

吹き出しボタンが押されたときに呼び出されるメソッドを表示します。質問を編集し、コードを追加します。 – Anna

+0

detailControllerは全く表示されていますか?また、detailControllerがnilの場合、現在のコードは2回押されることに注意してください。これは実際のコードですか( 'detailController'と' detailViewController'を持っていますか?)アノテーションを識別するためにタグを使用する代わりに、view.annotationで直接利用できます。例については、http://stackoverflow.com/questions/8256288/how-to-pass-sender-tag-in-detailview-to-get-default-map-application-for-directioおよびhttp:// stackoverflowを参照してください。 com/questions/7921106/mkmapview-max-number-of-annotations – Anna

+0

アプリを実行すると、コールアウトアクセサリがタップされたときにビューがロードされますが、イメージが表示される黒い空白の画面が表示されますまた、次のエラーが表示されます。アプリケーションがターゲット上のnil View Controllerをプッシュしようとしました。

答えて

0

あなたはストーリーボードを使用している場合は、すでにビューコントローラを持っている必要があります。私はあなたのコードは、あなたのビューコントローラがインスタンスであるクラスにあると仮定しています。

画像を提示するための最も簡単な(少なくともコーディング必須)の方法は、以下のとおりです。ビューコントローラ

    1. ストーリーボード
    2. ドラッグUIImageViewにドラッグビューコントローラをしたい画像を選択しますUIImageviewのプロパティエディタに表示する
    3. メインビューコントローラのボタンから画像を含むビューコントローラにドラッグ&ドロップする
    4. これはcreセグーを襲った。セグを選択し、スタイルメニューから「モーダル」を選択してください。

    これは、それぞれのイメージで行うことができますが、面倒です。画像コントローラをサブクラス化し、表示したい画像をプログラムで定義することも検討してください。モーダルビューコントローラを解除する方法で画像を消したい場合は、これを行う必要があります。代替案は、後方を指す別のセグを加えることです。

  • 関連する問題